如何在批处理文件中使用 gdal_calc

How to use gdal_calc in a batch file

我正在尝试使用带有批处理 windows 文件的 gdal 从多个输入图像创建掩码文件。但是,当我使用“!”时,系统向我发送错误消息。在比较计算中,在第一轮之后,所有变量都以字符串形式读取。 我的代码如下:

@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET mypath=F:\my_in_path\
SET path_salida=F:\my_out_path\
FOR /F %%i IN ('DIR /B %mypath%*.tif') DO (
    SET infile=%%i
    SET outfile=!infile!
    echo %mypath%!infile!
    echo %path_salida%!outfile!
    gdal_calc  -A %mypath%!infile! --outfile %path_salida%!outfile! --calc="2*(A==0)+1*(A==0)" --NoDataValue=0 --quiet 
)

由于自从我发表评论以来你已经半天没有提供任何反馈,这里有一个例子来测试并提供关于的反馈:

@Echo Off
Set "mypath=F:\my_in_path"
Set "path_salida=F:\my_out_path"
Set "calc_params=-A "%%A" --outfile "%path_salida%\%%~nxA" --calc="2*(A==0)+1*(A==0)" --NoDataValue=0 --quiet"

For %%A In ("%mypath%\*.tif") Do gdal_calc %calc_params%