Salin folder tertentu di Windows (robocopy)


1

Saya ingin melakukan sesuatu yang sederhana (saya pikir ...)

Saya punya sesuatu seperti ini:

Folder01 
  |_File1
  |_File2
  |_File3
Folder02
  |_File1
  |_File2
  |_File3
Folder03
  |_File1
  |_File2
  |_File3
Folder04
  |_File1
  |_File2
  |_File3

Saya hanya ingin menyalin data ini dengan robocopy ke target (karena saya perlu logfile dan harus menentukan dengan atribut untuk menyalin)

Tetapi karena beberapa keterbatasan saya tidak dapat menyalin data dalam sekali jalan dan harus membagi Pekerjaan ini (sebenarnya sekitar 5000 Folder, 3TB).

Jadi saya ingin menentukan "folder awal" dan folder terakhir seperti Folder00X (Folder001, +1, Folder100; Pekerjaan harus dimulai dengan Folder001 dan dengan langkah +1 itu harus menyalin Folder002, Folder003 .... Folder100).

Jawaban:


0

Pekerjaan harus dimulai dengan Folder001, langkah +1, salin Folder002, ... Folder100

Anda bisa menggunakan a for /l loop dalam file batch untuk melakukan ini.

File batch berikut menggemakan daftar nama folder yang diperlukan:

@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,100) do (
   rem prefix the count with leading zeros
   set "_number=00%%i"
   rem extract the last 3 digits
   echo Folder!_number:~-3!
   )
endlocal

Catatan:

  • File batch harus ditempatkan di direktori satu tingkat di atas Folder001
  • Ganti echo perintah dengan a robocopy perintah yang melakukan copy untuk Anda.
  • Untuk memproses nama dengan 4 digit (misalnya Folder1000, ... Folder 2000) Anda perlu mengubah file batch.
    • Menggantikan (1,1,100) dengan (1000,1,2000)
    • Menggantikan "_number=00%%i" dengan "_number=000%%i"
    • Menggantikan Folder!_number:~-3! dengan Folder!_number:~-4!

Sintaksis

FOR /L %%parameter IN (start,step,end) DO command 

Kunci

  • mulai: Angka pertama
  • langkah: Jumlah yang digunakan untuk menambah urutan
  • akhir: Angka terakhir

Sumber - untuk / l


Bacaan lebih lanjut

  • Indeks A-Z dari baris perintah CMD Windows - Referensi yang bagus untuk semua hal terkait Windows cmd line.
  • diaktifkan ekspansi ekspansi - Ekspansi yang tertunda akan menyebabkan variabel diperluas pada waktu eksekusi daripada pada waktu parse.
  • untuk / l - Melakukan perintah untuk sejumlah angka secara bersyarat.
  • set - Menampilkan, mengatur, atau menghapus variabel lingkungan CMD. Perubahan yang dilakukan dengan SET akan tetap hanya selama durasi sesi CMD saat ini.
  • variabel - Ekstrak bagian dari variabel (substring).
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.