0

Windows のすべてのフォルダーに対してコマンド ライン ユーティリティを再帰的に実行したいと考えています。私は以下を試しましたが、成功しませんでした。

FOR /R "C:\AMDB\30-Apr-2013\Input\" %%G in (.) DO (

shp2sdo.exe %%~ni %%~ni -g geometry -d -x (-180,180) -y (-90,90) -s 8307 -t 0.5 -v

Pushd %%G
Echo now in %%G
Popd )
Echo "back home"
4

3 に答える 3

1

これを試して:

@echo off &setlocal
FOR /R /D "C:\AMDB\30-Apr-2013\Input" %%G in (*) DO (
    Pushd "%%G"
    shp2sdo.exe "%%~ni" "%%~ni" -g geometry -d -x (-180,180) -y (-90,90) -s 8307 -t 0.5 -v
    Echo now in %%G
    Popd 
)
Echo "back home"
于 2013-05-31T08:28:33.143 に答える
0

コードが実行されない理由は)、SHP2SDO.EXE 引数の文字が FOR DO ループを途中で閉じているためです。これらの括弧はエスケープする必要があります:

FOR /R "C:\AMDB\30-Apr-2013\Input\" %%G in (.) DO (

  shp2sdo.exe %%~ni %%~ni -g geometry -d -x (-180,180^) -y (-90,90^) -s 8307 -t 0.5 -v

  Pushd %%G
  Echo now in %%G
  Popd
)
Echo "back home"
于 2013-05-31T14:43:19.030 に答える