Меню Рубрики

Windows cmd проверка существования файла

Проверка существования заданного файла

Второй способ использования команды IF — это проверка существования заданного файла. Синтаксис для этого случая имеет вид:

IF [NOT] EXIST файл команда1 [ELSE команда2]

Условие считается истинным, если указанный файл существует. Кавычки для имени файла не требуются. Приведем пример командного файла, в котором с помощью такого варианта команды IF проверяется наличие файла, указанного в качестве параметра командной строки.

IF -%1==- GOTO NoFileSpecified

IF NOT EXIST %1 GOTO FileNotExist

:: Вывод сообщения о найденном файле

ECHO Файл ‘%1’ найден.

:: Файл запущен без параметров

ECHO В командной строке не указано имя файла.

:: Параметр командной строки задан, но файл не найден

ECHO Файл ‘%1’ не найден.

Проверка наличия переменной среды

Аналогично файлам команда IF позволяет проверить наличие в системе определенной переменной среды:

IF DEFINED переменная команда1 [ELSE команда2]

Здесь условие DEFINED применяется подобно условию EXISTS наличия заданного файла, но принимает в качестве аргумента имя переменной среды и возвращает истинное значение, если эта переменная определена. Например:

IF DEFINED MyVar GOTO :VarExists

ECHO Переменная MyVar не определена

ECHO Переменная MyVar определена,

ECHO ее значение равно %MyVar%

Проверка кода завершения предыдущей команды

Еще один способ использования команды IF — это проверка кода завершения (кода выхода) предыдущей команды. Синтаксис для IF в этом случае имеет следующий вид:

IF [NOT] ERRORLEVEL число команда1 [ELSE команда2]

Здесь условие считается истинным, если последняя запущенная команда или программа завершилась с кодом возврата, равным либо превышающим указанное число.

Рассмотрим командный файл, который копирует файл my.txt на диск C: без вывода на экран сообщений о копировании, а в случае возникновения какой-либо ошибки выдает предупреждение:

XCOPY my.txt C: > NUL

:: Проверка кода завершения копирования

IF ERRORLEVEL 1 GOTO ErrOccurred

ECHO Копирование выполнено без ошибок.

ECHO При выполнении команды XCOPY возникла ошибка!

В операторе IF ERRORLEVEL … можно также применять операторы сравнения чисел, приведенные в табл. 2. Например:

IF ERRORLEVEL LEQ 1 GOTO Case1

Замечание. Иногда более удобным для работы с кодами завершения программ может оказаться использование переменной %ERRORLEVEL%. (строковое представление текущего значения кода ошибки ERRORLEVEL).

Источник

Windows cmd проверка существования файла

Сообщения: 175
Благодарности: 119

как вот его можно оптимизировать, чтобы он искал по следующим путям:
D(F):\videodata\camXX\mmdd,
где
XX — цифровое обозначение от 1 и до 99
mmdd — папки, имена которых состоят из месяца (mm) и даты (dd) »
Источник

CMD/BAT: Проверка наличия файлов (любых) в каталоге.

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщения 25

1 Тема от privatbox 2013-06-18 16:34:23

Тема: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

Сегодня для меня рухнула картина мироздания!
Ощущаю себя как мальчик увидевший мастурбирующего папу.

Казалось бы, элементарно!
Есть каталог C:\01
Проверяем:

И эта вот конструкция независимо от наличия там файлов радостно сообщает мне, что таки да, файлы там есть!

А в случае использования IF NOT EXIST с тем же завидным постоянством будет утверждать, что каталог пуст.

2 Ответ от Rumata 2013-06-18 16:40:07

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

* — означает любое количество символов (0 и более). Таким образом C:\01\*.* превращается в C:\01\., что указывает на каталог. А такой каталог у Вас есть. Следовательно условие верно. А вот если бы у Вас не было такого каталога, то действие было бы другое.

3 Ответ от privatbox 2013-06-18 16:50:17

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

Спасибо, мироздание пошатнулось, но устояло!
Но как же проверить.

4 Ответ от Rumata 2013-06-18 17:21:42

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

5 Ответ от privatbox 2013-06-18 17:42:33

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

Ура! Работает.
Правда не пойму, как работает 2>nul ?

6 Ответ от Rumata 2013-06-18 18:10:33

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

>nul — подавить стандартный вывод
2>nul — подавить вывод ошибок

7 Ответ от privatbox 2013-06-18 18:28:52

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

Это я понял, не понял почему именно 2>nul
Что такое — эта двойка в перенаправлении вывода? Возможны ли другие значения?
Извините за дотошность.

8 Ответ от Rumata 2013-06-18 19:10:31

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

9 Ответ от privatbox 2013-06-18 19:51:06

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

Благодарен безмерно.
Без иронии.
Спасибо!

10 Ответ от Rom5 2013-06-19 11:14:43

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

11 Ответ от wisgest 2013-06-19 11:50:01

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

Если ничего подобного не было, то, полагаю, что решение Rumata следует добавить в коллекцию.

Заинтересовал, правда, похожий вопрос: как проверить наличие подкаталогов или содержимого любого рода — ничего кроме FOR на ум не приходит.

12 Ответ от Rom5 2013-06-19 12:16:06 (изменено: Rom5, 2013-06-19 12:20:23)

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

как проверить наличие подкаталогов

.
Возможно, что есть смысл поиграться с заменой ключей «dir c:\01 /a-d . » на «dir c:\01 /ad /b . «

13 Ответ от wisgest 2013-06-19 12:48:20

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

Возможно, что есть смысл поиграться с заменой ключей «dir c:\01 /a-d . » на «dir c:\01 /ad /b . «

Уже пробовал — не работает.

14 Ответ от Rumata 2013-06-19 13:22:28

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

Работает. Каталоги pub и incoming — пустые

15 Ответ от alexii 2013-06-19 13:26:10

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

16 Ответ от wisgest 2013-06-19 13:47:07 (изменено: wisgest, 2013-06-19 13:47:45)

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

Не устанавливает код ошибки при отсутствии подкаталогов.
_
alexii, это хорошо, но всё-таки используется внешняя команда.

17 Ответ от alexii 2013-06-19 13:50:26

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

Не устанавливает код ошибки при отсутствии подкаталогов.

То же самое: каталоги «.»,«..» присутствуют.

alexii, это хорошо, но всё-таки используется внешняя команда.

А я не стесняюсь пользовать .

18 Ответ от FlashMan 2013-11-01 14:31:19 (изменено: FlashMan, 2013-11-01 22:29:39)

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

Доброго времени суток!
Помогите пожалуйста, вчера до 4 утра сидел, так и не понял в чем проблема.
Создал CMD-шник со следующим фрагментом:

Выдает ошибку: «Непредвиденное появление: /gray.». Убираешь /gray начинает на /convert ругаться и т.д. и т.п. Вообщем не в наборе параметров дело. Просто из командной строки этот набор параметров работает.

Заработало только так:

НО! Во-первых, код с использованием меток не изящный и плохо читаемый, во-вторых, нет возможности в лог поместить информацию о том, что файлы не были найдены, и в-третьих, мне хочется понять, что я неправильно написал в предыдущих двух вариантах.

Помогите, кто знает.

19 Ответ от ypppu 2013-11-01 17:27:14

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

FlashMan, обрамляйте код скриптов тегом «code»!

20 Ответ от FlashMan 2013-11-01 18:16:27 (изменено: FlashMan, 2013-11-01 22:31:00)

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

2 ypppu, спасибо за наводку!

Опишу, если кому-нибудь понадобится.
Правда я не совсем понял, как пользоваться кавычками, но подсказка помогла понять, что ()-скобки — это же операторские скобки, поэтому, если они присутствуют в параметрах, перед ними надо ставить знак ^.
Вот пример моего работающего кода кода:

, т.е. перед каждой скобкой: ^(100,100^)

Всем удачи! Ypppu еще раз спасибо за оперативность, вчера всю ночь на это убил.

21 Ответ от ypppu 2013-11-01 18:46:23

Re: CMD/BAT: Проверка наличия файлов (любых) в каталоге.

FlashMan, пожалуйста. Но Вы должны отредактировать сообщение #18 и сообщение #20 в этой теме.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Windows certificate self signed certificate
  • Windows ce установка карт на навигатор навител
  • Windows ce usb activesync устройства что это
  • Windows ce 6 как переустановить на навигаторе
  • Windows cannot install required files 0x80070570