コマンドプロンプトでファイルを複数のフォルダーからすべて親ディレクトリに移動する


8

次のように、複数のフォルダに複数の.rarファイルがあります。

C:\Docs\Folder1\rarfile1-1.rar
C:\Docs\Folder1\rarfile1-2.rar
C:\Docs\Folder1\rarfile1-3.rar  

C:\Docs\Folder2\rarfile2-1.rar
C:\Docs\Folder2\rarfile2-2.rar
C:\Docs\Folder2\rarfile2-3.rar  

C:\Docs\Folder3\rarfile3-1.rar
C:\Docs\Folder3\rarfile3-2.rar
C:\Docs\Folder3\rarfile3-3.rar  

すべての.rarファイルを親ディレクトリ「C:\ Docs」に移動したい。3つ以上のフォルダがあるので、バッチファイルなどを作成することを考えていました。これを行うコマンドは何でしょうか?
ありがとう


私は同様の問題を検索しましたが、この回答は役に立ちました。
ラルトーマ2016

回答:


15

私はありませんコマンドラインアプリケーション作ったまさにこの(プラスショーいくつかの統計を)し、誰もが、私はそれを把握することから、誰か保存を共有することができるようにそれを行うにしようとしていたかどうかを確認するために検索しました。

書くのはとても楽しかったです。.NET 3.5が必要です。コマンドラインから動作し、-hを指定して呼び出すか、使用するためにパラメーターを指定しません。

MoveFilesUpFromSubfolders
(ソースコード)

プラスのフィードバック!:)

ああ、それがどのように見えるかのスクリーンショット:

                               


3
+1誰かの問題を解決するプログラムを書く。それがコミットメントです!
Li-aung Yip

1
@ Li-aungYip褒めてくれてありがとう!また、状況により、これを作成したときにコーディングに使用していたハードドライブがなくなったため(これや他の多くのものを失ったため)、ここで確認して今すぐダウンロードできました(数回のダウンロードで非常に長く保存するためのMediafireに対する称賛、そしてMegauploadに保存しなかったのは幸運です!)。だから、あなたがそれを遠近法で見れば、あなたが受け取るより多くのものを与えるほど:)
Camilo Martin

すごい仕事!+1および50担当者。私はこれが4.5年前のものであることを知っていますが、90以上のフォルダーに入った90以上のファイルをダウンロードしたので、これは私にとって非常に役に立ちました。これにより、すべてのファイルを親フォルダーに配置することができました。

私の唯一の批判は、これを使用しようとしたときに、フォルダーの問題に関するエラーが表示され続け、その理由が示されていないことです。-tコマンドを使用することによってのみ、フォルダーに問題がある理由を特定できました(250文字以上の名前が付けられていたため)。これは、すべてのフォルダーを強調表示し、そのうちの1つの名前を変更することで簡単に回避できます(その後、残りのフォルダーに番号が追加されます)。

@ edmastermind29私のこのような古いコードがまだ誰かに役立っていることを知ってとてもうれしいです。信じられないかもしれませんが、ソースコードアーカイブは、著作権侵害として自動的にフラグが付けられたためにmediafireから削除されました(ビデオやオーディオはなくテキストのみがあることを考えると、これはかなりばかげています)。 。なんらかの用途がある場合は、この時点mv dir/sub/* dir; rmdir dir/subで、ループのようなものなど、このような問題に対処するbashワンライナーを作成します。
Camilo Martin、

7

これを試してみてください:

for /d %f in (docs\*) do (
pushd %f
move .\*.* ..
popd
)

これについてもう少し説明してもらえますか?
Nick

@ニック:内のすべてのフォルダに対して、フォルダをdocs入力します。すべてのファイルを現在のフォルダーから親フォルダーに移動します。親フォルダに戻ります。
Hello71、

pushdそしてpopd本当に必要ではありません。cdうまくいきます。
Hello71、

Hello71で説明されています。また、単一のラインで行うことができる:for /d %f in (docs\\*) do move %f\\*.* docs
BillP3rd

1
NB。上記のオリジナルもワンライナーも重複したファイル名を適切に処理しません。
BillP3rd 2010

5

さて、あなたの質問に対する答えは非常に簡単です。これはスクリプトではありませんが、実行します。

私はあなたがウィンドウズを走らせていると思いました。

  • 自分をC:\ Docsディレクトリに配置する
  • F3キーを押します(検索)
  • * .rarを検索します
  • Crtl + Aを押す
  • Ctrl + Xを押す
  • 検索ウィンドウを閉じて、エクスプローラのC:\ Doscにもう一度移動します
  • CTRL + Vを押して、切り取ったファイルを貼り付けます。

+1を使用すると、サードパーティやスクリプトを使用せずに、素晴らしくシンプルな回避策を実行できます。
Syakur Ra​​hman、2014

+ 1つの最良かつ最速の方法A +++
2017

3

この問題については、吸引がうまくいきました。

Suctionは無料のポータブルアプリで、乱雑なフォルダをすぐに整理できます。

吸引は、親ディレクトリを統合することによって機能します。たとえば、画像ディレクトリに不要なフォルダがいっぱいある場合は、そのフォルダを吸引インターフェイスにドラッグすると、フォルダがなくなり、ファイルだけが残ります。これは、たくさんのものをダウンロードする人にも役立ちます。


0

これはうまくいくはずです:

move C:\Docs\*\* C:\Docs

2
ファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくありません。
Nick

**は機能しませんでした
Nick

`\`を入力し、テキストエディターでエスケープされていないことを確認する必要があります。
Hello71、

CMDプロンプト(Windows 7の場合)からこのコマンドを発行すると、Nickが指摘したエラーが生成されます。
BillP3rd

これは機能しません。*はフォルダに対して適切に機能しません。GottaはTotal Commanderのようなサードパーティのプログラムを打ち出します。
surfasb

0

サブディレクトリから単一のディレクトリにファイルをコピーまたは移動する例

/ f "tokens = *"%a in( 'dir "C:\ Temp \ Epub * .epub" / s / b')の場合、/ y "%a" C:\ Temp \ epubをコピーします。

/ f "tokens = *"%aの場合( 'dir "C:\ Temp \ Epub * .epub" / s / b')は/ y "%a" C:\ Temp \ epubを移動します

"tokens = *は、特殊文字を含むパスをキャプチャすることです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.