首页 > 解决方案 > 具有多个通配符的非递归文件移动

问题描述

我将如何更改此代码以使其非递归?

FOR /R %pathold% %%G in (*.tif *.tiff *.jpg *.jpeg *.pdf) do (
    move "%%G" %pathnew%>NUL
    echo %%G
)

我尝试使用ForFiles,但它不支持多个通配符。

ForFiles /P %pathold% /M *.tif *.tiff *.jpg *.jpeg *.pdf /C "move @path %pathnew%"

错误:无效的参数/选项 - '* .tiff'。

标签: windowsbatch-file

解决方案


因此,为了仅使用根目录,请/R %pathold%从上面的代码中删除,如下所示:

FOR %%G in (*.tif *.tiff *.jpg *.jpeg *.pdf) do (
move "%%G" %pathnew%>NUL
echo Moving %%G
)

需要注意的重要事项:您必须位于不想从中移动的目录中。例如,您可以使用cd %oldpath%或来执行此操作pushd %oldpath%


推荐阅读