我有一个现有的批处理文件,它尝试将文件从 2 个目录移动到 2 个不同的位置。目前,这些被称为 2 个单独的移动命令。我想进一步简化代码,想知道是否有办法做到这一点
@echo off
for %%a in (C:\Test\*.*) do if "%%~xa" == "" move /Y "C:\Test\%%~na%%~xa" "D:\Done"
for %%i in (C:\Sample\*.*) do if "%%~xi" == "" move /Y "C:\Sample\%%~ni%%~xi" "D:\Done"
另一种情况是目标路径不同,如下所示
@echo off
for %%a in (C:\Test\*.*) do if "%%~xa" == "" move /Y "C:\Test\%%~na%%~xa" "D:\Done"
for %%i in (C:\Sample\*.*) do if "%%~xi" == "" move /Y "C:\Sample\%%~ni%%~xi" "E:\Done"
答案1
您现有的命令:
for %%a in (C:\Test\*.*) do if "%%~xa" == "" move /Y "C:\Test\%%~na%%~xa" "D:\Done"
说“如果文件没有扩展名,则将其移动到 d:\Done” - 不清楚为什么在移动过程中进行名称和扩展名测试。看起来这同样有效:
for %%a in (C:\Test\*.*) do if "%%~xa" == "" move /Y "%%a" "D:\Done"
在这种情况下,这将在同一行中执行两个目录:
for %%a in (C:\Test\*.* C:\Sample\*.*) do if "%%~xa" == "" move /Y "%%a" "D:\Done"
至于选择不同的目标目录,这完全取决于标准是什么。