私はすべてのフォルダを削除するための.batスクリプトを作成していますが、約5つのプリセットファイルを削除しています。私がやったことは、すべてのフォルダを処理するforループを作ることです。そして、forloopは、フォルダ名が文字列と一致するならIF文をチェックします。この場合、GOTOを使ってRDコマンドの下の行に行きます。削除はスキップされます。いくつかのフォルダを除くすべてのフォルダを削除するWindowsバッチファイル
ただし、これはforループを終了します。これは、最初の例外が削除されるまでのすべてのフォルダを意味します。
私が欲しいものを達成するためのよりよい方法があるのでしょうか、それともスクリプトに微調整がありますか?
@echo off
echo Starting...
for /d %%i in ("C:\demo\*") do (
if "%%i" == "C:\demo\mark" goto skipdel
if "%%i" == "C:\demo\pjotr" goto skipdel
if "%%i" == "C:\demo\jasper" goto skipdel
rd /s /q %%i
echo Deleted
:skipdel
)
echo Done.
pause
後藤FORコンテキストを破ります。 – npocmaka
これは、パスが空白のシステムファイルではうまくいかないことを忘れないでください: "C:/ Program Files(86x)/ ..."のようなパスがある場合は、/ d% ( 'type "C:\ demo \ *"')do( –