

デスクトップ上にあるファイル、フォルダの内、
指定したファイル、フォルダ以外を削除する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」を一括削除したい。
No.4ベストアンサー
- 回答日時:
以下のようなバッチファイルで可能です。
デスクトップのファイルのうち、指定したファイル名(フォルダ名)に一致するもの以外をすべて削除します。バッチでの削除ですのでゴミ箱には残りませんのでご注意ください。
デスクトップに残すファイル・フォルダの指定をバッチの下から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
No.3
- 回答日時:
ANo.#1の補足 Part 2。
ANo.#1では、ファイル名の指定を間違えた場合、削除したくないファイルが削除されてしまいますので、
@echo off
echo.
の後に、
if not "%~1"=="" if not exist %1 (echo ファイル名の指定が間違っています:%1) && goto :eof
if not "%~2"=="" if not exist %2 (echo ファイル名の指定が間違っています:%2) && goto :eof
if not "%~3"=="" if not exist %3 (echo ファイル名の指定が間違っています:%3) && goto :eof
if not "%~4"=="" if not exist %4 (echo ファイル名の指定が間違っています:%4) && goto :eof
if not "%~5"=="" if not exist %5 (echo ファイル名の指定が間違っています:%5) && goto :eof
if not "%~6"=="" if not exist %6 (echo ファイル名の指定が間違っています:%6) && goto :eof
if not "%~7"=="" if not exist %7 (echo ファイル名の指定が間違っています:%7) && goto :eof
if not "%~8"=="" if not exist %8 (echo ファイル名の指定が間違っています:%8) && goto :eof
if not "%~9"=="" if not exist %9 (echo ファイル名の指定が間違っています:%9) && goto :eof
を入れて、ファイルの実在を確認するようにした方が良いかもしれません。
No.2
- 回答日時:
ANo.#1の補足。
ここのサイトは、投稿の各行頭のスペースやタブコードを自動的に削除するようになっていて、インデントが分かりにくくなるために、ANo.#1のバッチファイルの各行頭は、タブコードを全角スペース2つに置き換えていますので、コピー&ペーストする場合には、全角スペースを削除するか、半角スペースまたはタブコードに置き換えてください。
No.1
- 回答日時:
指定したファイルを除外するというのは、少々面倒なので、ちょっと、下にびろ~~んと長くなりますが・・・。
注意:
バッチファイルのパラメータの指定の制限上、除外するファイル名やフォルダ名の指定は9つまでです。
解説:
半角スペースを含むファイル名やフォルダ名を指定する場合には、ファイル名やフォルダ名を二重引用符(")で括る必要があり、パラメータ 「%1」、「%2」、・・・、「%9」には二重引用符がついた状態のファイル名やフォルダ名が入っていますが、「for %%f in (*.*)」で「%%f」に入るファイル名やフォルダ名には二重引用符がつかず、if文を「if /i "%%f"=="%1"」のように「%1」、「%2」、・・・、「%9」で指定すると、二重引用符が2つ重なってうまく比較できなくなってしまうので、「%~1」、「%~2」、・・・、「%~9」で二重引用符を取り除いたものを二重引用符で括っています。
@echo off
echo.
rem ファイルの削除
for %%f in (*.*) do (
if /i "%%f"=="%~1" (
echo %%f not delete.
) else (
if /i "%%f"=="%~2" (
echo %%f not delete.
) else (
if /i "%%f"=="%~3" (
echo %%f not delete.
) else (
if /i "%%f"=="%~4" (
echo %%f not delete.
) else (
if /i "%%f"=="%~5" (
echo %%f not delete.
) else (
if /i "%%f"=="%~6" (
echo %%f not delete.
) else (
if /i "%%f"=="%~7" (
echo %%f not delete.
) else (
if /i "%%f"=="%~8" (
echo %%f not delete.
) else (
if /i "%%f"=="%~9" (
echo %%f not delete.
) else (
erase "%%f"
)
)
)
)
)
)
)
)
)
)
rem フォルダの削除
for /d %%d in (*.*) do (
if /i "%%d"=="%~1" (
echo %%d not delete.
) else (
if /i "%%d"=="%~2" (
echo %%d not delete.
) else (
if /i "%%d"=="%~3" (
echo %%d not delete.
) else (
if /i "%%d"=="%~4" (
echo %%d not delete.
) else (
if /i "%%d"=="%~5" (
echo %%d not delete.
) else (
if /i "%%d"=="%~6" (
echo %%d not delete.
) else (
if /i "%%d"=="%~7" (
echo %%d not delete.
) else (
if /i "%%d"=="%~8" (
echo %%d not delete.
) else (
if /i "%%d"=="%~9" (
echo %%d not delete.
) else (
rmdir /s /q "%%d"
)
)
)
)
)
)
)
)
)
)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- その他(プログラミング・Web制作) フォルダ内の特定 拡張子のファイルを一括実行するBat ファイルについて 4 2022/04/17 09:51
- Windows 10 ショートカットの作り方と使い方について教えて下さい。 3 2022/05/27 08:44
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行すると メッセージボックスが表示されて okをク 4 2023/07/05 19:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/05/31 11:50
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
このQ&Aを見た人はこんなQ&Aも見ています
-
昔のあなたへのアドバイス
過去のあなたへ一度だけアドバイスを送れる電話があったとします。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
歩いた自慢大会
「めちゃくちゃ歩いたエピソード」を教えてください。
-
単二電池
あなたの家に何本ありますか?
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
Batch: フォルダ内の特定のファイル以外を全て削除
その他(プログラミング・Web制作)
-
バッチファイルで特定のファイル・ディレクトリ以外を削除する方法について
その他(開発・運用・管理)
-
バッチファイルで特定ファイル以外を削除
その他(プログラミング・Web制作)
-
-
4
コマンドプロンプトで最新のファイル以外を削除
Windows Vista・XP
-
5
Windowsで指定「以外」のファイルを移動したい
IT・エンジニアリング
-
6
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
7
特定の拡張子以外のファイルを削除するツール
フリーソフト
-
8
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダは残してファイルだけ...
-
windows11におけるファイルの並...
-
フォルダの中身を指す場合、な...
-
勝手にフォルダが作成されます...
-
ZIPフォルダの中身をCDに焼く
-
SDカード内にたくさんの文字化...
-
フォルダだけ削除する方法あり...
-
[BuddyPress]試したいのですが!
-
フォルダ内の順番
-
ダウンロードフォルダが二つ以...
-
ファイルの比較について教えて...
-
複数フォルダのファイルを1つ...
-
フォルダに自動的に振り分けたい
-
Google ドライブ ってフォルダ...
-
USBメモリのパスワードロックの...
-
エクセルVBA:毎月名前が変わる...
-
tempフォルダの異常増殖
-
多重に入れ子になっているフォ...
-
警告音以外の効果音はどこに
-
.htaccessのbasic認証
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダは残してファイルだけ...
-
windows11におけるファイルの並...
-
勝手にフォルダが作成されます...
-
フォルダの中身を指す場合、な...
-
Google ドライブ ってフォルダ...
-
SDカード内にたくさんの文字化...
-
エクセルVBA:毎月名前が変わる...
-
VBA、フォルダのパスに環境文字...
-
iTunesのbackupファイルが複数...
-
複数フォルダのファイルを1つ...
-
パーフェクトビューワー SDカ...
-
ダウンロードフォルダが二つ以...
-
C:\\Logs このフォルダは何で...
-
Excelのマクロについて教えてく...
-
フォルダだけ削除する方法あり...
-
フォルダ内の順番
-
USBメモリーの中のいらないファ...
-
多重に入れ子になっているフォ...
-
フォルダ内のファイル移動が出...
-
エクセルのファイルの削除禁止
おすすめ情報