Проверка, существует ли какой-либо файл, но не каталог, в пакетном скрипте - PullRequest
0 голосов
/ 29 июня 2018

У меня следующая структура каталогов.

dir1
dir1\subdir
backup

И я хочу переместить файлы в каталоге dir1, но не в subdir, в каталог резервного копирования.

if exist dir1\*.* move dir1\*.* backup

Если в dir1 есть какие-либо файлы, скрипт работает нормально, но если dir1 пуст, я получаю сообщение об ошибке:

Неверный синтаксис имени файла, имени каталога или метки тома.

Проблема в том, что if exist dir1\*.* всегда возвращает true, потому что есть dir1\subdir.

Есть ли способ избежать этого сообщения об ошибке?

1 Ответ

0 голосов
/ 29 июня 2018

Используйте команду FOR для итерации файлов в каталоге. Если в каталоге нет файлов, он никогда не выполнит DO.

for %%G IN (dir1\*.*) do move "%%G" backup

Еще один вариант.

>nul 2>nul dir /a-d /b "dir1\*" && move dir1\*.* backup
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...