If exist bat: windows — How to check if a file exists from inside a batch file
Содержание
ЕСЛИ СУЩЕСТВУЕТ/ЕСЛИ НЕ СУЩЕСТВУЕТ в пакетном сценарии
спросил
Изменено
7 месяцев назад
Просмотрено
30 тысяч раз
У меня небольшая проблема с пакетным скриптом, который я пишу.
:Удалить_Файл клс заголовок Удалить файл echo Добро пожаловать в утилиту удаления файла! echo Введите имя файла, который вы хотите удалить: эхо. установить /p переменная = эхо. эхо я проверяю наличие файла... пинг 192.0.2.2 -n 1 -w 2000>ноль если СУЩЕСТВУЕТ %var% del %var% if НЕ СУЩЕСТВУЕТ %var% echo Файл не существует. Проверьте на наличие ошибок и попробуйте снова. пинг 192.0.2.2 -n 1 -w 1500> ноль установить /p answer=1 - перейти в меню _ 2 - перейти в выход если %answer%==1 перейти в меню если %answer%==9 перейти к выходу
Итак, проблема в том, что когда файл основан, он удаляется, но затем показывает сообщение в 12-й строке.
Мне нужно показать сообщение «Файл успешно удален! Перенаправляю вас в Меню…»
echo Файл успешно удален! echo Перенаправление в меню... пинг 192.0.2.2 -n 1 -w 2000>ноль перейти в меню
Я искренне извиняюсь за неправильный синтаксис вопроса, но я новичок.
Спасибо за каждый полученный ответ!
Федерико.
- пакетный файл
1
Если у вас возникли проблемы с else, вы можете использовать несколько ярлыков, например:
, если НЕ СУЩЕСТВУЕТ %var% goto :DeleteFileMissing дел %var% Перейти к :DeleteFileContinue : DeleteFileMissing эхо Файл не существует. Проверьте на наличие ошибок и попробуйте снова. : УдалитьФайлПродолжить
Пакетный язык действительно не лучший язык для такого рода проектов, но вы должны изменить порядок строк IF EXIST и IF NOT EXIST. Как только вы удалите файл в строке ЕСЛИ СУЩЕСТВУЕТ, файл больше не существует, и проверка ЕСЛИ НЕ СУЩЕСТВУЕТ сразу после этого, таким образом, будет выполнена успешно.
0
если существует %var% ( дел %var% ) еще ( эхо Файл не существует. Проверьте на наличие ошибок и попробуйте снова. )
4
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
windows — Проверьте, существует ли файл/папка, с помощью командной строки cmd (НЕ пакетный сценарий)
спросил
Изменено
2 года, 6 месяцев назад
Просмотрено
178 тысяч раз
Я нахожусь в консоли Windows, пытаясь выяснить, существует ли файл/папка или нет.
EXIST
можно использовать в пакетном режиме, но он недоступен в командной строке:
C:\Users\WIN7PR~1>EXIST C:\Users «СУЩЕСТВУЕТ» не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл.
- окна
- командная строка
0
Решение, когда ресурс является файлом, довольно прямолинейно, как указано другими:
C:\> IF EXIST C:\CONFIG. SYS ECHO C:\CONFIG.SYS существует.
К сожалению, это не работает для каталогов. Функция EXIST возвращает одинаковый результат как для отсутствующих, так и для присутствующих папок. К счастью, есть неясный обходной путь:
C:\> IF NOT EXIST C:\FOLDER\NUL ECHO C:\FOLDER отсутствует. C:\FOLDER отсутствует. C:\> MD C:\ПАПКА C:\> ЕСЛИ СУЩЕСТВУЕТ C:\FOLDER\NUL ECHO C:\FOLDER существует. C:\ПАПКА существует.
Оказывается, для поддержки таких конструкций, как добавление >NUL
к операторам команд, в каждом каталоге существует своего рода виртуальный файл с именем «NUL». Проверка его существования эквивалентна проверке существования каталога.
Это поведение задокументировано в статье базы знаний Microsoft ( https://support.microsoft.com/en-us/kb/65994 ), и я подтвердил его поведение в FreeDOS 1.1 и в командной оболочке Windows 7.
ДОПОЛНИТЕЛЬНО: в статье базы знаний указано, что этот метод также можно использовать для проверки наличия диска. Однако в случае проверки существования диска существуют предостережения:
An
Abort, Retry, Fail? Ошибка
возникает, если диск не отформатирован.Использование этого метода для проверки существования диска зависит от реализации драйвера устройства и может не всегда работать.
2
Можно использовать простую
DIR C:\User
0
Вы можете использовать команду типа
, она вернет содержимое текстового файла, не открывая его, а для каталога вернет: Отказано в доступе.
Если файл или каталог недоступны, вы получите сообщение: Система не может найти указанный файл.
Например:
C:\>введите c:\temp В доступе отказано. C:\> введите c:\example.txt Некоторый пример содержимого в текстовом файле C:\> введите c:\doesnotexist Система не может найти указанный файл.
1
Просто поставьте , если
впереди 🙂
, если есть C:\Users echo Он существует!
2
Вы можете использовать этот код:
:в этом SETLOCAL включил отложенное расширение ПЕРЕЙТИ к make_dir :make_dir ЭХО. ECHO Проверка существования каталога %out_path% ... CD %out_path% ЕСЛИ !УРОВЕНЬ ОШИБКИ! ОТР 0 ( Каталог ECHO не существует, создается... МД %out_path% ПЕРЕЙТИ к make_dir ) ЕЩЕ ( Каталог ECHO уже существует. ) :GOTO back_it_up :back_it_up ::Процедура, которая делает резервную копию ПЕРЕЙТИ к выполнению :сделанный ЭХО Готово SETLOCAL ВЫХОД /В1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.