Будет запущена только одна строка этого командного файла - PullRequest
1 голос
/ 30 июня 2011
gdal_merge -o C:\test\RasterMerge\p023r027\p023r027_7t20010623_z16_merged.tif -seperate -q -v C:\test\RasterMerge\p023r027\p023r027_7t20010623_z16_merged.tif C:\test\RasterMerge\p023r027\p023r027_7t20010623_z16_nn10.tif C:\test\RasterMerge\p023r027\p023r027_7t20010623_z16_nn20.tif 
gdal_merge -o C:\test\RasterMerge\p024r027\p024r027_7t19990828_z16_merged.tif -seperate -q -v C:\test\RasterMerge\p024r027\p024r027_7t19990828_z16_nn10.tif C:\test\RasterMerge\p024r027\p024r027_7t19990828_z16_nn20.tif
gdal_merge -o C:\test\RasterMerge\p024r027\p023r026\p023r026_7t20001010_z16_merged.tif -seperate -q -v C:\test\RasterMerge\p024r027\p023r026\p023r026_7t20001010_z16_nn10.tif C:\test\RasterMerge\p024r027\p023r026\p023r026_7t20001010_z16_nn20.tif 
gdal_merge -o C:\test\RasterMerge\p024r027\p024r026\p024r026_7t20000729_z16_merged.tif -seperate -q -v C:\test\RasterMerge\p024r027\p024r026\p024r026_7t20000729_z16_nn10.tif C:\test\RasterMerge\p024r027\p024r026\p024r026_7t20000729_z16_nn20.tif 
gdal_merge -o C:\test\RasterMerge\p024r027\p023r026\p023r028\p023r028_7t20000519_z16_merged.tif -seperate -q -v C:\test\RasterMerge\p024r027\p023r026\p023r028\p023r028_7t20000519_z16_nn10.tif 

C:\test\RasterMerge\p024r027\p023r026\p023r028\p023r028_7t20000519_z16_nn20.tif 

Примечание. Я удалил остальные 5 имен файлов из каждой команды, чтобы сделать ее более удобочитаемой. Я работаю над инструментом Python, который создаст для меня пакетный файл, но когда я пытаюсь запустить этот .bat, все, что я получаю, это первая команда, которая успешно выполняется, а затем возвращается к консоли. Я запускаю его в оболочке FWTools. Я открыл командный файл в шестнадцатеричном редакторе и искал дополнительные символы новой строки и возвращаемые символы, но я не вижу ничего необычного, поэтому кажется, что Python пишет правильно.

1 Ответ

4 голосов
/ 01 июля 2011

это gdal_merge сам пакетный файл?

В этом случае вам необходимо вводить call перед каждой строкой, чтобы запросить возврат пакетного файла при выходе из вызываемого пакетного файла, в противном случае вызов выхода в новом пакетном файле будет рассматриваться как реальный выход, поэтому он должен завершиться полностью:

call gdal_merge -o C:\test\RasterMerge\p023r027\p023r027_7t20010623_z16_merged.tif -seperate -q -v C:\test\RasterMerge\p023r027\p023r027_7t20010623_z16_merged.tif C:\test\RasterMerge\p023r027\p023r027_7t20010623_z16_nn10.tif C:\test\RasterMerge\p023r027\p023r027_7t20010623_z16_nn20.tif 
call gdal_merge -o C:\test\RasterMerge\p024r027\p024r027_7t19990828_z16_merged.tif -seperate -q -v C:\test\RasterMerge\p024r027\p024r027_7t19990828_z16_nn10.tif C:\test\RasterMerge\p024r027\p024r027_7t19990828_z16_nn20.tif
...

(также возможно, что сам Python запускается через командный файл, чем то же самое, но, возможно, вы также можете использовать call python gdal_merge.py -o ...)

Если это не командный файл, попробуйте использовать start /B вместо call, так как это создаст новую фоновую задачу. Если вам нужно, чтобы они вызывались последовательно, а не параллельно, просто используйте start /B /WAIT.

...