如何批量提取一个盘里的多个文件到指定文件夹内(有文件列表)?
3个回答
展开全部
不清楚你的实际文件/情况,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xx.bat,编码选ANSI
复制粘贴到记事本,另存为xx.bat,编码选ANSI
<# :
cls
@echo off
rem 从指定盘里搜索/查找多个指定名称的文件并拷贝/复制到一个指定文件夹里
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]::Default)))"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$path='D:';
$newfolder='E:\xxx\result';
$files=@'
文件1.txt
文件2.jpg
文件3.zip
'@;
if(-not (test-path -liter $newfolder)){[void](md $newfolder)};
$list=$files.trim() -split '[\r\n]+';
write-host ('"'+$path+'" Searching……');
$files=@(dir -liter $path -recurse|?{$_ -is [System.IO.FileInfo]});
for($i=0;$i -lt $files.length;$i++){
if($list -contains $files[$i].Name){
$newfile=$newfolder.trimend('\')+'\'+$files[$i].Name;
$n=2
while(test-path -liter $newfile){
$newname=$files[$i].BaseName+' ('+$n.toString()+')'+$files[$i].Extension;
$newfile=$newfolder.trimend('\')+'\'+$newname;
$n++;
};
write-host ($files[$i].FullName+' --> '+$newfile);
cp -liter $files[$i].FullName $newfile;
};
};
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |