2013-11-22 73 views
1

經過一段時間的努力後,我想出瞭如何從gdalinfo中提取每個地理參考jpg文件的座標。我的問題是,我無法弄清楚如何在不需要臨時文件的情況下完成所有操作。多餘的行和臨時文件會增加幾個小時的處理時間。CMD批處理文件GDAL - 擴展for/f循環以轉義臨時文件

如何「合併」這些操作?沒有臨時文件,只能通過每個文件一次> 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令牌」從這些行中刪除文本。

回答

2

你已經做了大部分工作:-)

@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" 
+0

太好了!你讓我終於明白了邏輯:)唯一缺少的是在^之前。至少讓它爲我工作。 – user3023461

+0

@ user3023461 - 是的,我忘了'^',謝謝。如果完全回答您的問題並滿意,請不要忘記接受答案。只需點擊答案左上角的複選標記即可。該行動讓其他人知道該問題已得到解答,授予您2個聲望點,並將答案海報授予15個重要點。每個問題只能接受一個答案。一旦你達到15代表,你將能夠投票儘可能多的答案,你發現有用的,甚至回答其他人民的問題。 – dbenham