我有大约2000张图像,需要通过某些参数使用TIF
从JPG
转换为GDAL
。我需要通过使用CMD
脚本来实现。到目前为止,这是我的脚本:
set "SourceFolder=C:\Tif\newimages\"
set "DestinationFolder=C:\Tif\temp"
set "CreatedFolder="
if not exist "%DestinationFolder%\" (
md "%DestinationFolder%" 2>nul
if not exist "%DestinationFolder%\" (
echo Error: Failed to create folder "%DestinationFolder%"
goto EndBatch
)
set "CreatedFolder=1"
)
for %%N in (%SourceFolder%*.tif) DO gdal_translate -of jpeg -a_nodata 0 -b 1 -b 2 -b 3 %%i %DestinationFolder%\%%i*jpg
:EndBatch
endlocal
pause
这将在CMD
上产生以下错误消息:
ERROR 4: %i: No such file or directory
背景:
Windows环境(显然)OSGeo4W cmd运行脚本。
我正在寻找的是对我在脚本中做错的事情的解释,并提出了使之起作用的建议。
编辑:
我意识到gdal
行末尾的命令应该是转换文件的源和目标。有什么办法解决此问题,因为我只需要在末尾定义目标文件夹即可。我将其作为一个无限循环工作,这当然不是最佳选择,因为图像数量超过2000。
仔细检查后,发现我为“ %% N”设置了一个值,后来又尝试使用“ %% i”。而且gdal命令应该是这个
DO gdal_translate -of jpeg -a_nodata 0 -b 1 -b 2 -b 3 %% N%DestinationFolder%\ %%〜nN.jpg
而不是:
DO gdal_translate -of jpeg -a_nodata 0 -b 1 -b 2 -b 3 %% i%DestinationFolder%\ %% i * jpg