Считывание параметров запуска из текстового файла



Иногда командная строка, используемая для запуска 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 очень удобен при частом использовании одних и тех же параметров или в случае, когда параметры динамически генерируются внешней программой: чтобы воспользоваться ими вам достаточно просто сохранить их в текстовой файл.