batch-file - 使用批处理循环移动多个扩展名的文件

标签 batch-file cmd

我想要将一些特定扩展名的文件移动到目标目录。这是我的批处理文件的部分:

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/

相关文章:

windows - FOR/F 循环中的虚假 'system\cmd.exe'

batch-file - 您可以从命令行运行 AIR 应用程序吗?

mysql - 在 Windows 上使用任务计划程序未完全执行批处理文件

windows - Windows 批处理文件中的 FOR/F 循环问题

java - 有人帮我在java中执行命令

windows - 循环的批处理脚本

c# - 在c#中杀死ffmpeg中的进程

windows - 如何在 Windows 的变量中获取命令的结果?

windows - 如何使用 findstr 从内部引号中提取文本

android - 是否可以在 Android 中运行批处理文件?