想写一个批处理,实现查找一个文件夹并复制内容进去?

想写一个批处理,实现查找一个文件夹(位置不知道是哪个盘,只知道是Cim\Cim2\Data\NC),并将一文件(例如0123.exe)复制到这个路径文件夹下,如何实现呢?

不清楚你的实际文件/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行<# :
cls&echo off&cd /d "%~dp0"
rem 全盘查找指定名称的多级目录/文件夹,并将一个指定文件复制到该目录里/文件夹里
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$file="0123.exe";
$pathpart="Cim\Cim2\Data\NC";
$b=[Convert]::FromBase64String("IC0tPiA=");
$c=[Text.Encoding]::Default.GetString($b);
$p='\'+$pathpart.trim('\').ToLower();
for($i=90;$i -ge 67;$i--){
    $drive=([char]$i).ToString()+':\';
    if(test-path -literal $drive){
        write-host ($drive+' Searching……');
        $folders=@(dir -literal $drive -recurse -ErrorAction SilentlyContinue|?{$_ -is [System.IO.DirectoryInfo]});
        for($j=0;$j -lt $folders.length;$j++){
            if($folders[$j].FullName.ToLower().EndsWith($p)){$file+$c+$folders[$j].FullName;}
        }
        write-host 'Done';
    }
}

追问

可以了,之前没注意要改格式,但是查找出来路径了,文件却没有复制进去,文件是放在一起的

追答

按运行后窗口标题栏的提示联系我

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-06-02
多写几行,没有文件夹的自然复制失败,例如:
copy 0123.exe c:\Cim\Cim2\Data\NC\
copy 0123.exe d:\Cim\Cim2\Data\NC\
copy 0123.exe d:\Cim\Cim2\Data\NC\
copy 0123.exe f:\Cim\Cim2\Data\NC\
copy 0123.exe g:\Cim\Cim2\Data\NC\
copy 0123.exe h:\Cim\Cim2\Data\NC\
copy 0123.exe i:\Cim\Cim2\Data\NC\
copy 0123.exe j:\Cim\Cim2\Data\NC\
保险就一直写到Z追问

可以用判断的方式吗,这个有点长啊

追答

判断还是要写这么多行,可以用循环,见下图(只有for那一行是命令,批处理里面%要双写,echo是调试用的你应该删除):

相似回答