[英]Automate file copying from Windows command line
假设您有100个目录,对于每个目录,都有一个名为.pdf的文件存储在其他位置。 如果要将每个文件移动/复制到相同名称的目录中,可以在Windows命令行上执行此操作吗?
这是一个批处理脚本,可能会满足您的要求:
setlocal
set target_dir=D:\
set source_dir=C:\WINDOWS
for %%i in (%source_dir%\*.pdf) do move %%i %target_dir%\%%~ni.%%~xi
endlocal
您可以使用FOR命令执行此操作 。 符合:
for /f %%f in ('dir /s /b c:\source\*.pdf') do copy "%%f" c:\target
如果在文本文件中有完整路径的文件名列表,例如files.txt,您也可以
for /f %%f in (files.txt) do copy "%%f" c:\target
在命令行中:
for /f %f in ('dir /s /b mypath\*.pdf') do @copy %~nxf myotherpath
因为它是在命令行上,而不是在批处理文件中,所以您只需要%,而不是%%。
dir / s / b是递归且裸露的。 (请参阅目录/?)
复制前的@会停止每个复制命令的回显。 您可以根据自己的喜好来回应它们。
%〜nxf获得%f的名称和扩展名。 (请参阅电话/?)
您将需要编写脚本来遍历每个文件(及其路径),提取文件名-.pdf,然后将文件移至同名目录
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.