我想要将一些特定扩展名的文件移动到目标目录。这是我的批处理文件的部分:
move "%filepath%\*.txt" "%~dp0"
move "%filepath%\*.docx" "%~dp0"
move "%filepath%\*.pdf" "%~dp0"
move "%filepath%\*.jpg" "%~dp0"
move "%filepath%\*.png" "%~dp0"
上面的代码工作正常。但我想循环这样做。我正在尝试如下:
set f_ext=*.txt *.docx *.pdf *.jpg *.png
for %%f in (%f_ext%) do (
move "%filepath%\%%f" "%~dp0"
)
仅当目标文件夹(%~dp0
)中已存在同名文件时,上述代码才有效,否则无效。
那么如何使用批处理循环移动某些扩展名的文件,并且不需要目标文件夹中存在文件名?
最佳答案
问题在于 for
中的通配符使其迭代当前事件目录中的文件
set f_ext=.txt .docx .pdf .jpg .png
for %%f in (%f_ext%) do (
move "%filepath%\*%%f" "%~dp0"
)
将 for
中的通配符(将其从扩展集中删除)更改为 move
命令。
关于batch-file - 使用批处理循环移动多个扩展名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43998345/