批处理,如何复制文件夹里指定pdf,保存到另一个文件夹里?

已知D盘有一文件夹里有5万份pdf已命名,复制其中5k份到另一文件夹,有清单列表,命名格式为全数字,如2019123456求大神写个代码谢谢

不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,跟要处理的文件放一起双击运行;bat和txt文件须存为ANSI/GB2312编码
<# :
cls&echo off&mode con lines=3000
rem 根据一个指定txt文本文件里列出的多个不带扩展名的文件名称,从当前目录里找出这些文件并拷贝/复制到一个指定的新文件夹里
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312')))) -Args '%~f0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$txtfile="列表.txt";
$newfolder="D:\xxx\新文件夹";
if(-not (test-path -liter $txtfile)){write-host ('"'+$txtfile+'" 未找到');exit;};
if(-not (test-path -liter $newfolder)){[void][IO.Directory]::CreateDirectory($newfolder)};
$self=get-item -liter $args[0];
$path=$self.Directory.FullName;
[byte[]]$b=@(32,45,45,62,32);
$c=[Text.Encoding]::Default.GetString($b);
$dic=New-Object 'System.Collections.Generic.Dictionary[string,string]';
$text=[IO.File]::ReadAllLines($txtfile,[Text.Encoding]::GetEncoding('GB2312'));
for($i=0;$i -lt $text.count;$i++){
$key=$text[$i].toLower();
if(-not $dic.ContainsKey($key)){$dic.add($key,'');}
}
$files=@(dir -liter $path|?{('.pdf' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
for($i=0;$i -lt $files.length;$i++){
$key=$files[$i].BaseName.toLower();
if($dic.ContainsKey($key)){$files[$i].Name+$c+$newfolder;}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-26
你的意思是随机选择5k份,复制,并生成列表
还是先定义列表,然后根据列表复制本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网