2016-05-08 4 views
1

Когда я выполнить следующую команду в CMD строке это работает:Пакетный сценарий против командной строки

for /R %f in (*.shp) do ogr2ogr -nln merge -update -append merge.shp %f 

, но когда я запускаю его из BAT-файла он не работает. Высказывание - неожиданно.

В любом случае я могу запустить это из .bat-файла.

ответ

3

Символ % имеет особое значение для параметров командной строки и параметров FOR.

Лечить процента как обычный символ, удвойте: %%

При выполнении его из пакетного файла, вы должны написать это:

@echo on 
for /R %%f in (*.shp) do ogr2ogr -nln merge -update -append merge.shp %%f 
pause 

Смотреть это для получения дополнительной информации: http://ss64.com/nt/syntax-esc.html

+1

Есть ли какое-нибудь руководство, которое я могу использовать для пакетного сценария? – kinkajou

+0

@kinkajou я отредактировал свой ответ, так что взгляните на ссылку выше;) – Hackoo

+2

Введите 'Help' в командной строке. Затем либо 'command /?', Либо 'help command'. Вещь, вызывающая вас горе, находится в 'for /?'. Вот руководство обмана для пунктуации в командной строке http://stackoverflow.com/questions/31820569/trouble-with-renaming-folders-and-sub-folders-using-batch. –

Смежные вопросы