###前提・実現したいこと
バッチファイルを用いて多重のフォルダにネストされたファイルを救出したい。
7zアプリケーションを使ってファイルを解凍した際に、誤ってフォルダを二重に作ってしまいました。
同様のファイルが100個ほどあり、流石にコマンドプロンプトやGUIではちょっと処理がしんどいので自動化する運びとなりました。
###発生している問題
多重にネストされたフォルダたちを”親ディレクトリの中の子ディレクトリ内にファイルがあれば親ディレクトリの上位ディレクトリに移動する”という操作を各フォルダの名前の違いを意識せず、各フォルダに実行したい。が、その書き方がわからない。
###該当のソースコード
@echo off pushd D: pushd D:\Documents\Files set file1 =DIR D:\Documents\Files\File.01\File.01.text /a:-d if %%file1 = 1 do( cd /.. )
※この"file1"の部分を変数かなにかでフォルダの数だけ実行したい。
###試したこと
各フォルダごとにif構文で中身の有無の確認まではコーディングできましたがその後中身のファイルの名前がちがうので、個別にcdコマンドを使わねばなりません。
そこで、フォルダが空でなければ中身をcd /.. するという表現をどうコード化すればよいでしょうか。
もしかして、拡張子が同じならそこから探す方法もあるのでしょうか。
よろしくお願い致します。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
以下問題ファイルのツリーです。
File
|-File01-file01-file01.pdf
|-File02-file02-file02.pdf
|-File03-file03-file03.pdf
...以下同様のフォルダが100個ほど。
を
File
|-File01-file01
|-File02-file02
|-File03-file03
|-file01.pdf
|-file02.pdf
|-file03.pdf
したいと考えています。
問題は大文字のフォルダはアプリの設定で作成されたもので、解凍したいファイルはもともとフォルダで小分けされていたのです。そこで、もうフォルダは必要ないので一番上層のFileフォルダにpdfのみを移動したいということです。
このような感じでいかがでしょうか。
初心者ゆえ、多くの概念がまだ理解不足なのに加えて説明能力不足も相まって非常に難解な文章となってしまいました。お手数おかけしますがよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー