Как я могу иметь только одну команду перемещения в командном файле?
У меня есть существующий пакетный файл, который пытается переместить файлы из 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"
Что касается выбора разных каталогов назначения, то это будет полностью зависеть от критериев.