所以,我从这开始:
copy | dir /s /b | find "myFile" C:\Destination
但问题是目标在此命令中不可见。它只看到命令的第一部分取消提示C:\ Destination。
有没有办法可以搜索文件并复制它?
我也尝试过这样的事情:
SET source = dir /s /b | find "myFile"
SET destination = %CD%
copy %file% %destination%
但它不起作用。
在某些时候,即使尝试设置指向curent目录的变量(%CD%)也不起作用。
提前致谢!
PS:我正在寻找一种解决方案,无需在计算机上安装任何新功能,这就是为什么我在考虑批处理文件。我想我可以用VBscript做到这一点,但我不确定。如果有人认为这是一个更好的选择,请发布答案。
答案 0 :(得分:2)
经过几个小时的工作后,我设法找到了正确的命令组合,以实现这一目标。这是给大家的,我希望它有所帮助:
SET destination=%CD%
E:
for /f "delims=" %%a in ('dir /b /s ^| find "searchedFile"') do (
cd ..
xcopy "%%a" "%destination%" /D:10-10-2011)
pause
我使用了更改目录命令,因为"目录"命令返回整个路径,包括文件和尝试复制它时...它认为该文件位于包含其名称的路径中。
例如,如果我搜索" myFile.jpg"在" E:\ Folder \ New Folder \ myFile.jpg"它认为文件的位置是" E:\ Folder \ New Folder \ myFile.jpg \ myFile.jpg"显然这不起作用。