1

У меня есть существующий пакетный файл, который пытается переместить файлы из 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 ответ1

0

Ваша существующая команда:

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" 

Что касается выбора разных каталогов назначения, то это будет полностью зависеть от критериев.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .