質問: 指定以外のファイルやフォルダを削除したい。 デスクトップ上にあるファイル、フォルダの内、 指定したファイル、フォルダ以外を削除するbatファイル、 もしくはvbsを作成したいのですが、 どのような記述をすれば良いのでしょうか? osはwindows2000 server sp4です。 どなたかご教示よろしくお願いいたします。 例: デスクトップに以下の2つのファイルと1つのフォルダがあり、 これ以上デスクトップにファイルやフォルダを増やしたくないのですが、 「hoge2.txt」 「hoge.lnk」 「hoge」 誤って以下のファイルとフォルダを作成してしまいました。 「hoge1.txt」 「hoge.jpg」 「hoge2」 「hoge2.txt」と「hoge.lnk」「hoge」は常にデスクトップに残し、 「hoge1.txt」と「hoge.jpg」「hoge2」を一括削除したい。
回答: 以下のようなバッチファイルで可能です。 デスクトップのファイルのうち、指定したファイル名(フォルダ名)に一致するもの以外をすべて削除します。バッチでの削除ですのでゴミ箱には残りませんのでご注意ください。 デスクトップに残すファイル・フォルダの指定をバッチの下から5行目の( )内に記述します。 当方このバッチのテスト中にデスクトップのファイルをかなり消してしまいました:-) 記述ミスにはくれぐれもご注意を。 :---------------------------------------------------- sample.bat echo off pushd %userprofile%\デスクトップ for %%f in ( * ) do call :sub "%%f" for /d %%f in ( * ) do call :sub "%%f" d popd exit /b :sub set flag=off for %%e in ( hoge2.txt hoge.lnk hoge ) do if %1=="%%e" set flag=on if "%flag%"=="on" goto :eof if "%2"=="" del %1 if "%2"=="d" rd /s /q %1 goto :eof