2009-09-04 6 views
0

現在、私の簡単なバッチスクリプトは次のようになります。ディレクトリにスペースが含まれているループを無視するには?

@echo off 
for /D /r C:\myprojects\AIS\ %%G in (_svn) do rd /S /Q %%G 
pause 

は残念ながら、これは、「マイプロジェクト」と呼ばれるディレクトリ、それらにおける空白文字で任意のディレクトリをスキップします。これを回避するにはどうしたらいいのですか?

+0

はこのWindows(DOS)ですか?おそらく「バッチファイル」タグ –

+0

はいです。私はそれに "バッチ"タグを入れましたが、もしあなたが望むなら "バッチファイル"も含めます。 – Chris

+0

申し訳ありませんが、金曜の朝の脳死です。 –

答えて

1

ディレクトリ名の前後に引用符を付けることはできますか?

+0

私はこれを試しました:%% Gはディレクトリ名を保持しているので、(_svn)do rd/S/Q "%% G"では/ D/r C:\ electionscanadaprojects \ AIS \ "%% G" 。 – Chris

+0

何とか引用符をエスケープする必要がありますか?私はちょうどここで推測しています、私はDOSの男ではありません(これはDOSですよね?) –

+0

はい、それはdosです。私は引用符をエスケープする必要はないと信じています。これは通常、ディレクトリへの直接パスを与えた場合に機能します。しかし、それは変数に格納されている私の問題を引き起こしている、と私は思います。 (私はスクリプトをバッチ処理することを知っていました。間違っている可能性があります) – Chris

2

うん...私のために働くようです。代わりにエコーを試しましたか?

C:\tmp> TREE /A C:\tmp\xxx 
C:\TMP\XXX 
\---one one 
    \---two two 

C:\tmp> FOR /D /R c:\tmp\xxx %I IN (_svn) DO @ECHO RD "%I" 
RD "c:\tmp\xxx\_svn" 
RD "c:\tmp\xxx\one one\_svn" 
RD "c:\tmp\xxx\one one\two two\_svn" 

rmdirへのあなたの議論については、おそらく引用符が必要です。真に妄想的になりたい場合は、代わりに%~Iを使用して、FOR /D /R ... %I IN ("_svn")が引き起こす混乱を防ぎます。

関連する問題