
お詳しい方アドバイスをお願いいたします。
とあるディレクトリ内の全てのファイル・ディレクトリを対象に、指定した名称以外のものは全て削除したいのですが、記述方法が良くわからずアドバイス頂けないでしょうか?
/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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Batch: フォルダ内の特定のファイル以外を全て削除
その他(プログラミング・Web制作)
-
指定以外のファイルやフォルダを削除したい。
UNIX・Linux
-
Windowsで指定「以外」のファイルを移動したい
IT・エンジニアリング
-
-
4
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
5
フォルダの中身を全部消したい。
Windows Me・NT・2000
-
6
コマンドプロンプトで最新のファイル以外を削除
Windows Vista・XP
-
7
バッチファイルで特定ファイル以外を削除
その他(プログラミング・Web制作)
-
8
ワイルドカードを使ってでフォルダを削除
Windows 10
-
9
del で確認なしで削除した
Windows Me・NT・2000
-
10
フォルダは残してファイルだけ消したい
Windows Me・NT・2000
-
11
コマンドプロンプトで相対パスの取得
その他(コンピューター・テクノロジー)
-
12
特定の拡張子以外のファイルを削除するツール
フリーソフト
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
コマンドプロンプトでごみ箱へファイルを移動させるにはどうすればよいのでしょうか?
Windows Vista・XP
-
15
DOS コマンドの~zfの意味を教えてください。
Windows Vista・XP
-
16
バッチファイル 文字列にスペースがある場合
その他(プログラミング・Web制作)
-
17
バッチファイル内の各コマンドが順番に実行される条件
その他(OS)
-
18
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
19
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
linux duコマンドで困っています。
-
Subversion と TortoiseSVN で ...
-
PCに保存していた写真を見られ...
-
Teratermマクロの戻り値の取得失敗
-
ネットワークフォルダの中身を...
-
VBSでメール送信
-
バッチファイル pause時の文字...
-
拡張子をつくる
-
コマンドプロンプトで印刷実行
-
FFFTP ミラーリングダウンロード
-
キャビネットファイルの破損・・・
-
メルカリを退会して再登録した...
-
system関数のエラー検出
-
ExcelのVBProjectがExcelを開く...
-
FFFTPの自動化バッチについて
-
同一フォルダ内に一見同じファ...
-
Excelで外部のファイルの場所を...
-
ネットワーク内のIPアドレス...
-
public_html の中に出来たThumb...
-
同名フォルダを作成し、そのフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
linux duコマンドで困っています。
-
バッチファイルで特定のファイ...
-
【至急】.htaccessによるディレ...
-
コマンドプロンプト 現在のディ...
-
FTPでのディレクトリのアップロ...
-
FTPディレクトリとは
-
WebDAVに書き込みができない
-
robocopyをすると隠し属性フォ...
-
rsync実行でmkdirエラー
-
telnetでサーバー上のファイル...
-
.htaccessで特定のディレクトリ...
-
Linux(Ubuntu)の基本的な質問...
-
AIXでの指定ディレクト以下の全...
-
ディレクトリのファイル一覧に...
-
【MRTG】グラフ表示で抜けがある。
-
webサーバとPDFの関係(開く時...
-
すべてのディレクトリに対してg...
-
フォルダ 削除しようとすると...
-
Webサーバ内部への匿名アクセス
-
SNMPトラップについて
おすすめ情報