从Windows命令行自动复制文件

时间:2008-10-09 09:41:15

标签: windows command-line

假设您有100个目录,并且对于每个目录,您有一个名为.pdf的文件存储在其他位置。如果要将每个文件移动/复制到具有相同名称的目录中,可以在Windows命令行上完成吗?

4 个答案:

答案 0 :(得分:4)

这是一个可能符合您要求的批处理脚本:

setlocal
set target_dir=D:\
set source_dir=C:\WINDOWS

for %%i in (%source_dir%\*.pdf) do move %%i %target_dir%\%%~ni.%%~xi

endlocal

答案 1 :(得分:2)

您可以使用FOR command执行此操作。以下内容:

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

答案 2 :(得分:2)

从命令行:

for /f %f in ('dir /s /b mypath\*.pdf') do @copy %~nxf myotherpath

因为它位于命令行而不是批处理文件中,所以只需要%,而不是%%。

dir / s / b是递归和裸露的。 (见dir /?)

@ before复制将停止每个复制命令的回显。如果你愿意,你可以回复它们,直到你。

%~nxf获取%f的名称和扩展名。 (见电话/?)

答案 3 :(得分:0)

您需要编写一个脚本来遍历每个文件(及其路径),提取文件名 - '。pdf'然后将文件移动到同名目录

相关问题