不清楚你的實(shí)際文件/情況,僅以問(wèn)題中的樣例/說(shuō)明為據(jù);以下代碼復(fù)制粘貼到記事本,另存為xx.bat,跟要處理的文件放一起雙擊運(yùn)行;bat和txt文件須存為ANSI/GB2312編碼
<# :
cls&echo off&mode con lines=3000
rem 根據(jù)一個(gè)指定txt文本文件里列出的多個(gè)不帶擴(kuò)展名的文件名稱,從當(dāng)前目錄里找出這些文件并拷貝/復(fù)制到一個(gè)指定的新文件夾里
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;}
}