批处理脚本与命令行

Batch script vs command line

当我 运行 在 cmd 提示符下执行以下命令时它有效:

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

但是当我从 .bat 文件中 运行 它时它不起作用。说 -nln 是出乎意料的。

我可以从 .bat 文件中 运行 这个吗?

%字符对于命令行参数和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