1

SD カード上のカメラの写真をコンピューターの HDD 上のディレクトリに移動する Windows 7 バッチ スクリプトを作成しようとしています。このディレクトリには、pic の作成日の年と月が含まれている必要があります。

サンプルファイル:E:\DCIM\100CANON\IMG_0190.jpg, 2012/12/31

に:C:\Users..Pictures\2012\12\

私のアイデアは、年、月、日の FOR ループを作成し、結果の日付よりも新しいファイルを移動することでした。

FOR /L %%Y IN (2014,-1,2011) DO ( FOR /L %%M IN (12,-1,1) DO ( FOR /L %%D IN (31,-1,1) DO ( ROBOCOPY E:\DCIM\100CANON\ C:\Users..Pictures\%%Y\%%M\ *.* /MAXAGE:%%Y%%M%%D /MOVE ) ) )

しかし、10 未満の月と日に 0 が欠落しているため、それは機能しません...

残念ながら、私は Windows バッチ ファイルのコーディングについて十分な知識がありません。

4

1 に答える 1

0

月ごとに分けているので、日ループは必要ありません。

私がしたことは、日のループを削除し(各月の最初の日より古い写真を除く)robocopy、パッド付きの月の数字でコマンドを呼び出す if ステートメントを追加することだけでした。

FOR /L %%Y IN (2014,-1,2011) DO (
    FOR /L %%M IN (12,-1,1) DO (
        if %%M LSS 10 ROBOCOPY E:\DCIM\100CANON\ C:\Users..Pictures\%%Y\0%%M\ *.* /MAXAGE:%%Y0%%M01 /MOVE /L
        if %%M GEQ 10 ROBOCOPY E:\DCIM\100CANON\ C:\Users..Pictures\%%Y\%%M\ *.* /MAXAGE:%%Y%%M01 /MOVE /L
    )
)

/L実際にファイルを移動する前に、robocopyのオプションを使用して結果を確認することもお勧めします。/Lファイルを表示するだけでなく、実際にファイルを移動する準備ができたら、 を削除してください。

参照robocopy /?してください。

于 2012-12-31T17:03:42.250 に答える