お詳しい方アドバイスをお願いいたします。
とあるディレクトリ内の全てのファイル・ディレクトリを対象に、指定した名称以外のものは全て削除したいのですが、記述方法が良くわからずアドバイス頂けないでしょうか?
/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
Windowsで指定「以外」のファイルを移動したい
IT・エンジニアリング
-
5
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
6
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
7
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
8
特定の拡張子以外のファイルを削除するツール
フリーソフト
-
9
複数フォルダをまとめて移動するバッチ
Windows Vista・XP
-
10
XCOPYで指定したフォルダとファイルをコピーしたい
システム
-
11
バッチファイル 二つ上のディレクトリのパス取得
その他(プログラミング・Web制作)
-
12
フォルダの中身を全部消したい。
Windows Me・NT・2000
-
13
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
14
バッチファイルで指定フォルダ以下のフォルダ名を表示
その他(プログラミング・Web制作)
-
15
moveコマンドで別のドライブにフォルダを移動
その他(OS)
-
16
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
17
ワイルドカードを使ってでフォルダを削除
Windows 10
-
18
コマンドプロンプトで最新のファイル以外を削除
Windows Vista・XP
-
19
フォルダは残してファイルだけ消したい
Windows Me・NT・2000
-
20
XCOPYでネットワーク越しにコピーすると、「無効なドライブ指定です」と表示される
その他(プログラミング・Web制作)
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
linux duコマンドで困っています。
-
MRTGが動作しません
-
Subversion と TortoiseSVN で ...
-
バッチファイルで特定のファイ...
-
robocopyのログの質問です。
-
robocopyをすると隠し属性フォ...
-
コマンドプロンプト 現在のディ...
-
同一サーバからだと他人に見ら...
-
qmailでアカウントにも転送先に...
-
メルカリを退会して再登録した...
-
PCに保存していた写真を見られ...
-
Visual C++からftpを使う
-
C#のFileSystemWatcherでのファ...
-
拡張子をつくる
-
VB6.0でVISAを用いる
-
OpenFileDialogを使った後にも...
-
Windowsのバッチファイルでcall...
-
Excelで外部のファイルの場所を...
-
スマホでHTMLファイルを開いて...
-
EXCEL VBAのDir関数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
linux duコマンドで困っています。
-
バッチファイルで特定のファイ...
-
【至急】.htaccessによるディレ...
-
FTPでのディレクトリのアップロ...
-
robocopyをすると隠し属性フォ...
-
rsync実行でmkdirエラー
-
.htaccessで特定のディレクトリ...
-
【MRTG】グラフ表示で抜けがある。
-
良く判らないファイル?
-
robocopyのログの質問です。
-
gitで複数のリポジトリで運用は...
-
BIND8でファイルのアップロード...
-
同一サーバからだと他人に見ら...
-
【初歩】TeraTermでLinuxサーバ...
-
Subversion と TortoiseSVN で ...
-
すべてのディレクトリに対してg...
-
MRTGが動作しません
-
基本認証のかかった複数ディレ...
-
バックアップ前後でのファイル...
-
webサーバとPDFの関係(開く時...
おすすめ情報