如何批量提取一个盘里的多个文件到指定文件夹内(有文件列表)?

如题所述

不清楚你的实际文件/情况,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为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;
    };
};

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-05
选中需要提取的所有文件复制然后粘贴到指定文件夹就可以了。本回答被网友采纳
第2个回答  2020-10-21

Excel怎样批量提取文件夹和子文件夹所有文件

相似回答