3

Windowsコマンドラインを使用して、フォルダー「.svn」を除くすべてのファイルとディレクトリを削除したいと考えています。私は次のように 2 つの手順で実行してみました (私の作業ディレクトリは、クリーンアップするフォルダーです)。

  1. まず、「.svn」以外のすべてのディレクトリを削除します。dir /B /A:D | findstr /V ".svn" | rmdir /Q
  2. すべてのファイルを削除します。del * /F /Q

ステップ 2 は問題ありませんが、ステップ 1 で「コマンドの構文が正しくありません」というメッセージが表示されます。エラー。rmdircmdによってスローされます。これを行う方法を知っている人はいますか? 1 つを除くすべてのディレクトリを削除します。

4

1 に答える 1

0
for /f "tokens=*" %i in ('dir /B /A:D') do if ["%i"] neq [".svn"] rd "%i" /f /q

説明

for ループは、dir コマンドの出力を列挙します。ディレクトリ名にスペースがある場合は、tokens=* を指定する必要があります。

if パラメーターを囲む角括弧と二重引用符は、引数が何も取得されない (または空白になる) か空白を含む場合の問題を回避するための古いトリックです。

これをcmdファイルに入れたい場合は、%記号を2倍にすることを忘れないでください

于 2016-08-31T08:25:48.420 に答える