Второй способ использования команды 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).
Доброго времени!
Скриптовыми языками занимаюсь очень редко, по этому возник вопрос:
Имеется скрипт для копирования файлов в зависимости от разрядности ОС.
Подскажите, как заставить скрипт проверить наличие папки, т.е. если нет папки — копировать в зависимости от разрядности, а если есть, то завершить скрипт.
синтаксис: echo [сообщение]
пример: echo file yes exist
описание: if exist [путь] echo [сообщение, если файл существует]
пример: if exist «a:*.txt» echo file yes exist
описание: if not exist [путь] echo [сообщение, если файл не существует]
пример: if not exist «a:*.txt» echo file not exist
С помощью союза “&”(и) можно объединить команды, то тогда вы
получите положительный ответ или отрицательный ответ.
пример:
if exist «a:*.txt» echo file yes exist & if not exist «a:*.txt» echo file not exist
результат: если файл существует, то сообщение будет ” file yes exist ”, а
если файл не существует, то сообщение будет ” file yes exist ”.
Если путь содержит пробелы, то следует заключить его в кавычки.
Пример: “D:Program FilesInternet Exploreriexplore.exe”
Если путь содержит пробелы, то следует заключить его в кавычки.
Пример: “D:Program FilesInternet Exploreriexplore.exe”
Пример вашего задания:
синтаксис: copy [путь] [путь куда копировать]