
お詳しい方アドバイスをお願いいたします。
とあるディレクトリ内の全てのファイル・ディレクトリを対象に、指定した名称以外のものは全て削除したいのですが、記述方法が良くわからずアドバイス頂けないでしょうか?
/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も見ています
-
Batch: フォルダ内の特定のファイル以外を全て削除
その他(プログラミング・Web制作)
-
指定以外のファイルやフォルダを削除したい。
UNIX・Linux
-
バッチファイルで特定ファイル以外を削除
その他(プログラミング・Web制作)
-
-
4
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
5
フォルダの中身を全部消したい。
Windows Me・NT・2000
-
6
コマンドプロンプトで最新のファイル以外を削除
Windows Vista・XP
-
7
Windowsで指定「以外」のファイルを移動したい
IT・エンジニアリング
-
8
del で確認なしで削除した
Windows Me・NT・2000
-
9
特定の拡張子以外のファイルを削除するツール
フリーソフト
-
10
フォルダは残してファイルだけ消したい
Windows Me・NT・2000
-
11
ワイルドカードを使ってでフォルダを削除
Windows 10
-
12
コマンドプロンプトで相対パスの取得
その他(コンピューター・テクノロジー)
-
13
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
14
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
-
15
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
16
複数フォルダをまとめて移動するバッチ
Windows Vista・XP
-
17
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
18
バッチファイル内の各コマンドが順番に実行される条件
その他(OS)
-
19
バッチでCSVを処理する時、空の項目があった場合
その他(プログラミング・Web制作)
-
20
バッチファイル 文字列にスペースがある場合
その他(プログラミング・Web制作)
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
linux duコマンドで困っています。
-
rsync実行でmkdirエラー
-
Apacheでエラー→DocumentRoot m...
-
gitで複数のリポジトリで運用は...
-
ディレクトリのファイル一覧に...
-
FTPでのディレクトリのアップロ...
-
すべてのディレクトリに対してg...
-
PCに保存していた写真を見られ...
-
同名フォルダを作成し、そのフ...
-
<a href="file:///フォルダ名/...
-
拡張子をつくる
-
Excelファイルの特定のシートを...
-
ロックされたファイルを再起動...
-
Teratermマクロの戻り値の取得失敗
-
Git bashが開かなくなってしま...
-
ネットワークフォルダの中身を...
-
「~$ファイル名.doc」というフ...
-
メルカリを退会して再登録した...
-
EXCELで右クリックメニューの追加
-
コマンドプロンプトで印刷実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルで特定のファイ...
-
linux duコマンドで困っています。
-
.htaccessで特定のディレクトリ...
-
フォルダの中にファルダを作成...
-
【至急】.htaccessによるディレ...
-
【MRTG】グラフ表示で抜けがある。
-
robocopyをすると隠し属性フォ...
-
FTPでのディレクトリのアップロ...
-
FTPディレクトリとは
-
AIXでの指定ディレクト以下の全...
-
Subversion と TortoiseSVN で ...
-
MRTGが動作しません
-
SNMPトラップについて
-
ディレクトリ毎にwebサーバーへ...
-
httpからディレクトリ内容を表...
-
rsync実行でmkdirエラー
-
telnetでサーバー上のファイル...
-
Apacheでエラー→DocumentRoot m...
-
webサーバとPDFの関係(開く時...
-
gitで複数のリポジトリで運用は...
おすすめ情報