サブフォルダ内のファイルを複数のフォルダの下のメインフォルダに移動する

サブフォルダ内のファイルを複数のフォルダの下のメインフォルダに移動する

私の写真インポート プログラムは、写真のバックアップ コピーを「DATE にインポート」というラベルの付いたフォルダーに保存します。これらのフォルダーは、目的の場所のフォルダーのサブフォルダーとして作成されます。複数のフォルダー レイヤーの下に、このような「インポート済み」フォルダーが多数あります。例:

C:\pictures\all photos 2013\01jan13\1月18日にインポートされました。

画像フォルダから各サブフォルダまでスキャンし、プログラムで「インポート先」フォルダ内のファイルをその上のフォルダに移動さ​​せる方法はありますか? わかりにくくて申し訳ありません。

ご協力ありがとうございます

答え1

これは Windows 7 では動作しますが、他のバージョンについてはわかりません。

for /r C:\pictures %F in (*.*) do move %F %F\..\..

ノート:

  • for /r C:\pictures %F in (*.*) do …は、 をファイル名に設定して、の下にある各ファイルに対して次のステートメントを 1 回C:\pictures再帰的に実行します。%F
  • moveファイルを移動します。
  • ここからがややこしいです。ご存知のとおり、これでcd ..1 レベル上がります。 と書くと、 (ファイルがあるディレクトリ)\Users\rshonaker\Documents\fubar.doc\..を参照します。 はファイルがあるディレクトリです。 そして はそのディレクトリの親です。\Users\rshonaker\Documents%F\..%F%F\..\..

その他のメモ:

  • 注意して使用してください。 にファイルがある場合はC:\pictures、 に移動しようとしますC:\。 にファイルがある場合はC:\pictures\all photos 2013、 に移動しようとしますC:\pictures。 など。
  • これをスクリプトに組み込む場合は、 のすべての出現を に置き換え%Fます%%F

関連情報