Считывание параметров запуска из текстового файла
Иногда командная строка, используемая для запуска nnBackup, становится очень длинной. Такую строку уже неудобно использовать в бат-файлах, планировщиках и непосредственно в консоли. Чтобы минимизировать это неудобство, nnBackup умеет "считывать" параметры запуска из текстового файла. Для этого предназначена специальная опция командной строки -f.
Например, вместо того, чтобы писать в командной строке:
nnbackup.exe sync -log log\nnbackup.log -i d:\first\source\ -i d:\second\source\ -o e:\backup\sources\ -m *.cfg,*.ini -x *.bsy,*.lck -s -v -q -da -ad
можно просто сохранить все параметры (sync -log log\nnbackup.log -i d:\first\source\ -i d:\second\source\ -o e:\backup\sources\ -m *.cfg,*.ini -x *.bsy,*.lck -s -v -q -da -ad) в текстовой файл, например test.cfg, после чего вызвать nnBackup так:
nnbackup.exe -f test.cfg
Форматируя параметры запуска nnBackup в текстовом файле, вы не ограничены необходимостью записывать команды и опции в одну строчку, как в консоли: переводы строки и дополнительные пробелы между опциями не учитываются в файле с параметрами. В любом месте внутри файла с параметрами можно использовать специальный знак комментария до конца строки, который принят в языке программирования Форт: \ (обратный слеш+пробел).
Вот пример файла с параметрами запуска nnBackup (с комментариями и произвольными переводами строк):
\ синхронизируем два каталога sync \ исходный каталог: -i H:\ARTICLES\ \ приемный каталог: -o "E:\MY DOCUMENTS\ARTICLES\" \ лог-файл -log D:\TOOLS\NNBACKUP\LOG\nnbackup.log \ дополнительные опции: -v \ verbose -s \ обрабатывать вложенные каталоги -e \ копировать пустые каталоги -da \ удалять из приемного каталога файлы, \ отсутствующие в исходном каталоге -ad \ копировать файлы
В текстовых файлах с параметрами запуска вы можете использовать не только команды и опции, но и предопределенные строковые переменные nnBackup.
Большинство опций командной строки принимают в качестве аргументов некие параметры: опция -i получает в качестве aргумента имя исходного каталога, опция -m получает в качестве аргумента список масок имен файлов, опция -D - дату создания/модификации файла и т. д. Параметры опций вы тоже можете считывать из текстовых файлов. Для этого существует специальный синтаксис @filename. Его можно использовать со всми опциями командной строки, которые принимают параметры в качестве аргументов (-m, -x, -i, -D, -dn и т. д.).
Например, вместо того, чтобы постоянно повторять одни и те же маски в командной строке, вы можете сохранить их в файл mask.cfg:
*.txt *.doc *.rtf *.htm* *.pdf
и вызывать nnBackup так:
nnbackup.exe copy -i c:\data -o d:\backup\data -m @mask.cfg -v -s
Как видите, для корректной работы синтаксиса @filename, параметры, сохраненные в файл, должны быть разделены переводами строк - по одному параметру на строку.
Очередной пример: зададим с помощью синтаксиса @filename несколько исходных каталогов. Для этого создаем файл src.txt:
c:\data c:\another_data c:\important_data
Теперь, можем вызывать nnBackup так:
nnbackup.exe copy -i @src.txt -o d:\backup\data -v -s
Еще одна сфера применения синтаксиса @filename - обработка списков файлов (файл-листов).
Синтаксис @filename очень удобен при частом использовании одних и тех же параметров или в случае, когда параметры динамически генерируются внешней программой: чтобы воспользоваться ими вам достаточно просто сохранить их в текстовой файл.