私の写真インポート プログラムは、写真のバックアップ コピーを「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
。