
В этой статье поговорим о батниках они же bat-файлы, cmd-файлы или просто скрипты для командного процессора Windows cmd.exe.
Постараюсь без банальностей неплохой урок есть тут: http://www.rsdn.ru/article/winshell/batanyca.xml
Я же от себя буду добавлять здесь всякие полезности, которые могут пригодиться на практике.
Буду не многословен. Хотите подробней, все очень просто:
cmd /? if /? for /?
и т.д. и т.п....
Пишите безопасные скрипты
Неправильно:
cd /d C:\temp del *.*
Правильно:
del C:\temp\*.*
Что произойдет в первом случае, если каталог C:\temp отсутствует?
Никогда не рассчитывайте на то, что все команды отработают правильно, особенно, если вы собираетесь делать что-то деструктивное.
Смена каталога на тот, где находится сам bat-ник
pushd %~dp0 bla-bla-bla popd
где bla-bla-bla - это сам скрипт, а popd - вернет в каталог, который был в момент вызова командного сценария.
%~dp0 - это я беру полное имя скрипта из переменной %0 и вырезаю из него диск и путь. Подробности по обрезанию параметров смотри в call /?
Проверка на существование файла в каталоге
dir /b/a-d/s "C:\test\in\*.*" >nul 2>nul && echo Good! || echo Bad!тут 2>nul подавляет вывод на экран ошибок, а >nul подавляет стандартный вывод команды dir.
Тут вся хитрость заключается в вычислении логических выражений. Если dir выполнился без ошибок (нашел файлы и вернул true), то требуется выполнить команду echo Good!, в противном случае выполняется echo Bad!
Продолжение следует... :)