我正在循环遍历某个目录,如果存在 zip 文件或文件,则它们将被移动到该目录中的辅助文件夹,但是下面的代码似乎不起作用,即它不会移动文件。我做错了什么?
for %%i in (D:\test\*.*) do if %%~xi == ".zip" move /Y "D:\test\%%~ni%%~xi" "D:\test\complete"
答案1
比较文件扩展名时,也将当前文件的扩展名放在引号中,如下所示:
for %%i in (D:\test\*.*) do if "%%~xi" == ".zip" move /Y "D:\test\%%~ni%%~xi" "D:\test\complete"
我已经测试过了,并且它运行良好。
要使用子程序,请尝试以下操作:
for %%i in (D:\test\*.*) do call :checkextension %%i
:checkextension
if "%~x1" == ".zip" move /Y "%~1" "D:\test\complete"
goto:eof
请注意每个文件的路径(%%i
)如何作为参数传递给:checkextension
子程序,然后子程序以扩展名%~1
(或%~x1
仅在需要扩展名时)访问它。