3

私は長年の視聴者ですが、これは私の最初の質問なので、間違っていたら申し訳ありません.

リモート マシン上のすべてのフォルダとファイルを再帰的に削除する必要があり、特定のフォルダが削除されないようにしたいと考えています。

これらの除外されたフォルダーは、 というテキスト ファイルに一覧表示され、各行excludeDirectories.txtに 1 つのフォルダー名があります。

私の最初の試みは、コマンド プロンプト コマンドとpsexec. スクリプトを以下に示します。これらをバッチコマンドから実行していることに注意してください%%

net use r: \\machine\sharedFolderName

FOR /D %%a IN (R:\*.*) DO (
    c:\pstools\psexec cmd /c rmdir /s /q R:\
)

このスクリプトはすべてを削除しますが、ループ内の現在のフォルダーのテキスト ファイルを確認し、テキスト ファイル内にFORファイルが見つかった場合はループ内の次のフォルダーにスキップする方法がわかりません。

IF私はこれに何日も費やしましたが、フォルダーをステートメントで使用できるものに読み取りpsexec、一致が見つかったときに行から分岐するコードを機能させるのに苦労しました。

繰り返しますが、死んだ馬を打ち負かすために、私が達成しようとしていることは次のとおりです。

  1. R:ドライブ上のフォルダーを再帰的にループする
  2. ループ内の各フォルダーをチェックFORして、テキスト ファイル内にあるかどうかを確認します。
  3. ループ内の現在のフォルダーがテキスト ファイル内にある場合は、フォルダーを削除する行をスキップして、ループFOR内の次のフォルダーに進みます。FOR
  4. パワーシェルが使えない
  5. 除外されたフォルダーをテキスト ファイルに保存する必要があります
4

2 に答える 2

1

これは、テキスト ファイルにドライブ文字ではなく、名前だけが含まれていることを前提としています。

for /d %%a in (R:*) do findstr /i /x /c:"%%~nxa" excludeDirectories.txt || rd /s /q %%a
于 2012-11-30T20:53:07.613 に答える