お詳しい方アドバイスをお願いいたします。
とあるディレクトリ内の全てのファイル・ディレクトリを対象に、指定した名称以外のものは全て削除したいのですが、記述方法が良くわからずアドバイス頂けないでしょうか?
/hoge/ というディレクトリ内には、階層もバラバラで様々な名称のデータが入っていると仮定した際に、この/hoge/ 配下にある index.php という名称のファイルと、imgというディレクトリ以外は全て削除したいです。
なお、このimg内のデータも削除対象にしたいです。(もちろんこのimgの中に、さらにimgやindex.phpがあればそれらは削除対象外です)
やはりforで回して削除していく流れになるのでしょうか?解説のサイトを拝見するのですが、いまいちよくわからず…。
宜しくお願いいたします。mm
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
環境が書いてないですが、「バッチファイル」という単語からWindowsだとして回答します。
robocopy \hoge \hoge-tmp index.php img /e /move
rd /s /q \hoge
ren \hoge-tmp hoge
念のため、/move を付けず、
robocopy \hoge \hoge-tmp index.php img /e
で、希望通りか確認した方が良いかと思います。
No.3
- 回答日時:
素人考えで言えば、
削除対象以外を全て別なディレクトリーに移動し、※1
残ったディレクトリーとフォルダーをすべて削除する、
ではどうでしょうか。
※1
移動の際にディレクトリー階層まで維持できるかどうかは不明ですが…
有難うございます。
データが構造に決まりが無いのと、数万、数十万あった場合を考慮したいと思うのでもう少し考えてみたいと思います。
有難うございます。
No.2
- 回答日時:
>やはりforで回して削除していく流れになるのでしょうか?
まあ、考え方はそうなります。
自分は横着なので、
除外したいファイルやフォルダだけをディレクトリ構造そのままに別のフォルダに複製(xcopyで移動させても良い)し、
元のファイルをフォルダごとを削除して、
複製したその別のフォルダの名前を削除したフォルダの名前に変更
します。
……ディスク容量が十分あるならこのほうが簡単にバッチファイルを作れます。
質問者さんならちょっと考えるだけで簡単にできるんじゃないでしょうか。
ということで、空き容量を確保したいためにファイルを削除するという目的であれば、このやり方は無視してください。本末転倒なやり方になりますからね。
・・・
実務的に作りたいということでしたら、半自動で処理することを考えてみましょう。
削除したいファイルがあるディレクトリを都度指定して、ファイル削除のバッチファイルを実行するんです。
cdコマンドでディレクトリを移動しながら、pathが通っている場所に置いた削除用のバッチファイルを実行です。
たぶん、一発で処理しようとあれこれ考えるよりも、結果的に早く処理が完了すると思います。
有難うございます。
なるほどです…。空き容量というわけではないです。
一発で行うのはなかなか難しそうですね、もう少し検討してみたいと思います。
No.1
- 回答日時:
一発でやるのは難しいですので、ザックリですがふたつの方法を。
ひとつは、削除するのではなくて xcopy /e index.php で、ツリー構造を複製し、複製したあとで img以外のフォルダーを手動で削除。
もうひとつは dir /s /b をリダイレクトして、その内容をExcelのB列に貼り付け、A列を「del」で埋めて、削除しないファイルの行を削除してから、その内容をテキストファイル(BATファイル)に保存すれば、そのBATファイルで一気に削除できます。
どちらにしても、元のディレクトリ構造は、そのままバックアップしてから行うことをお勧めします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- UNIX・Linux JSLinuxについて。 Linuxのこの手順のプログラミングは合っているでしょうか。 ①ホームディ 2 2022/06/20 15:33
- フリーソフト サイトで使用していない画像ファイルの削除ソフトを探しています。 3 2023/04/05 10:49
- PostgreSQL PostgreSQLで"pg_dumpall -f data.sql"を使ってバックアップしたデータ 2 2022/09/19 08:14
- HTML・CSS 全部のアクセスを指定したページに転送させたい 2 2022/06/28 16:33
- PHP ファイルアップロードに関してのセキュリティについてアドバイスお願い致します 1 2023/08/20 00:25
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
Batch: フォルダ内の特定のファイル以外を全て削除
その他(プログラミング・Web制作)
-
指定以外のファイルやフォルダを削除したい。
UNIX・Linux
-
バッチファイルで特定ファイル以外を削除
その他(プログラミング・Web制作)
-
-
4
Windowsで指定「以外」のファイルを移動したい
IT・エンジニアリング
-
5
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
6
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
7
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
8
バッチファイル 二つ上のディレクトリのパス取得
その他(プログラミング・Web制作)
-
9
複数フォルダをまとめて移動するバッチ
Windows Vista・XP
-
10
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
11
特定の拡張子以外のファイルを削除するツール
フリーソフト
-
12
バッチファイルで指定フォルダ以下のフォルダ名を表示
その他(プログラミング・Web制作)
-
13
XCOPYで指定したフォルダとファイルをコピーしたい
システム
-
14
DOSコマンドでのワイルドカードの使い方
Windows Vista・XP
-
15
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
16
【vbs】ファイル名の検索と該当ファイルの削除について
その他(プログラミング・Web制作)
-
17
バッチコマンドでファイル名の一部を参照して削除
その他(プログラミング・Web制作)
-
18
バッチで削除したフォルダをイベントログに出力したい
UNIX・Linux
-
19
ワイルドカードを使ってでフォルダを削除
Windows 10
-
20
バッチファイルで昨日の日付を取得
その他(プログラミング・Web制作)
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
linux duコマンドで困っています。
-
【MRTG】グラフ表示で抜けがある。
-
バッチファイルで特定のファイ...
-
BIND8でファイルのアップロード...
-
PCに保存していた写真を見られ...
-
拡張子をつくる
-
同名フォルダを作成し、そのフ...
-
クリックしたボタンによってSel...
-
Teratermマクロの戻り値の取得失敗
-
FFFTPの自動化バッチについて
-
ユーザーフォーム内のテキスト...
-
「~$ファイル名.doc」というフ...
-
VBSで指定した時刻にメッセージ...
-
Excelで外部のファイルの場所を...
-
参照元Excelファイルをバックグ...
-
コマンドプロンプトで印刷実行
-
index置いてもIndex of /が表示...
-
Excelファイルの特定のシートを...
-
テキストボックスのフォーカス...
-
FlashROMにデータを書き込むに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
linux duコマンドで困っています。
-
バッチファイルで特定のファイ...
-
.htaccessで特定のディレクトリ...
-
【至急】.htaccessによるディレ...
-
FTPでのディレクトリのアップロ...
-
良く判らないファイル?
-
gitで複数のリポジトリで運用は...
-
robocopyをすると隠し属性フォ...
-
MRTGが動作しません
-
フォルダの中にファルダを作成...
-
robocopyのログの質問です。
-
WebDAVに書き込みができない
-
【初歩】TeraTermでLinuxサーバ...
-
大塚商会のサーバーにアップロ...
-
Web アプリケーションのディレ...
-
sambaにおける2GBファイルの扱...
-
FFFTPのホスト設定について
-
ルーター内の構成を確認する方...
-
さくらVPSのスケールアップにつ...
-
ドキュメントルートの外にディ...
おすすめ情報