【问题标题】:CMD Batch file GDAL - extending the for /f loop to escape temporary filesCMD 批处理文件 GDAL - 扩展 for /f 循环以转义临时文件
【发布时间】:2013-11-22 22:27:30
【问题描述】:

经过一段时间的努力,我想出了如何从 gdalinfo 中提取每个地理参考 jpg 文件的坐标。我的问题是我无法弄清楚如何在不需要临时文件的情况下进行所有操作。额外的行和临时文件会增加几个小时的处理时间。

如何“合并”这些操作?没有临时文件,每个文件只传递一次 > the.mmm 非常感谢您的帮助!

for /R %%g in (*.jpg) do echo 0.000 0.000 > %%~png.mmt

for /R %%g in (*.jpg) do gdalinfo %%g | findstr /i /C:"size is" /C:"lower left" /C:"upper right" >>%%~png.mmt

for /R %%g in (*.jpg) do echo 0.000 >> %%~png.mmt

for /R %%a in (*.mmt) do (for /F "tokens=1,2 delims=SizeisLowrftUpRgh,() " %%G IN (%%a) DO @echo %%G %%H >> %%~pna.mmm)

结果如下:

0.000 0.000 
1931 1448 
317600.000 6543562.880 
317677.240 6543620.800 
0.000

gdalinfo | findstr 提取我正在寻找的行。 “for /f 标记”从这些行中删除文本。

【问题讨论】:

    标签: batch-file for-loop cmd gdal


    【解决方案1】:

    你已经完成了大部分工作:-)

    @echo off
    for /r %%F in (*.jpg) do (
      echo 0.000 0.000
      for /f "tokens=1,2 delims=SizeisLowrftUpRgh,() " %%A in (
        'gdalinfo "%%F" ^| findstr /i /c:"size is" /c:"lower left" /c:"upper right"'
      ) do echo %%A %%B
      echo 0.000
    )>"%%~pnF.mmm"
    

    【讨论】:

    • 太棒了!你让我终于明白了逻辑:) 唯一缺少的是 | 之前的 ^。至少让它为我工作。
    • @user3023461 - 是的,我忘记了^,谢谢。如果它完全回答了您的问题并使您满意,请不要忘记接受答案。只需单击答案左上角附近的复选标记即可。该操作让其他人知道问题已被回答,奖励您 2 点声望,并奖励回答者 15 点。每个问题只能接受一个答案。达到 15 次代表后,您将可以对任何您认为有用的答案进行投票,甚至可以回答其他人的问题。
    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多