pindahkan file berdasarkan cap tanggal dengan batch

Saya perlu memindahkan file dari semua folder di semua hard drive yang dimodifikasi dalam dua tanggal. Karena saya baru mengenal batch, mohon jelaskan apa maksudnya.

Apa yang saya inginkan:

Cari semua folder di semua hard drive untuk file yang diubah dari 10 Nov 2013 hingga 11 Nov 2013 Buat folder di drive D:/backups/11_11 Pindahkan semua file yang ditemukan dalam pemindaian yang dimodifikasi dengan tanggal dan TAHUN ke folder yang dibuat Buat a file teks dengan log semua file yang dipindahkan, kesalahan, dan waktu pemindahan (waktu pemindahan opsional)


person user2755744    schedule 12.11.2013    source sumber


Jawaban (1)


@ECHO OFF &SETLOCAL
set "date1=01/09/2013"
set "date2=31/10/2013"
set "SearchPath=D:/backups/11_11"
set "datestamp1=%date1:~6,4%%date1:~3,2%%date1:~0,2%"
set "datestamp2=%date2:~6,4%%date2:~3,2%%date2:~0,2%"

for %%a in ("%searchpath%\*") do (
    set "fname=%%~a"
    for /f "tokens=1-3 delims=/-. " %%b in ("%%~ta") do set "datestampF=%%~d%%~c%%~b"
    SETLOCAL ENABLEDELAYEDEXPANSION
    if "!datestampF!" gtr "%datestamp1%" if "!datestampF!" lss "%datestamp2%" echo move "!fname!" "DestinationFolder"
    endlocal
)

Hapus echo agar berfungsi.

person Endoro    schedule 12.11.2013
comment
@foxidrive ya, Anda benar dan saya juga tahu ini. Kode saya menjelaskan prosedur dasar. Dan ini freeware, patch dipersilakan. - person Endoro; 13.11.2013
comment
hehe Maka yang perlu dilakukan hanyalah mencari di setiap drive, dan menyalin file ke jalur pencarian. BTW, apakah variabel jalur pencarian kedua merupakan baris debugging? - person foxidrive; 13.11.2013
comment
@foxidrive pengguna harus menentukan, apa itu all drives? Bagaimana dengan stik USB, drive jaringan, dan CD ROM? Dan ya, baris pengaturan %searchpath% kedua ini berasal dari pengujian :) -dihapus. Terima kasih! - person Endoro; 13.11.2013
comment
Search all folders in all hard drives for files jadi dia mencari rutinitas untuk mendeteksi hard drive saja. Wmic mungkin berfungsi di sana, jika Anda ingin berusaha - jika OP membalas sama sekali. - person foxidrive; 13.11.2013