คัดลอกโฟลเดอร์เฉพาะบน Windows (robocopy)


1

ฉันต้องการทำอะไรง่าย ๆ (ฉันคิดว่า ...

ฉันมีสิ่งนี้:

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

ฉันต้องการคัดลอกข้อมูลเหล่านี้ด้วย robocopy ไปยังเป้าหมาย (เพราะฉันต้องการ logfile และต้องระบุด้วยคุณสมบัติที่จะคัดลอก)

แต่เนื่องจากข้อ จำกัด บางประการฉันไม่สามารถคัดลอกข้อมูลในการทำงานครั้งเดียวและต้องแยกงานนี้

ดังนั้นฉันต้องการระบุ "โฟลเดอร์เริ่มต้น" และโฟลเดอร์สุดท้ายเช่น Folder00X (Folder001, +1, Folder100; งานควรเริ่มต้นด้วย Folder001 และขั้นตอนที่ +1 ควรคัดลอก Folder002, Folder003 ....

คำตอบ:


0

งานควรเริ่มต้นด้วย Folder001 ขั้นตอนที่ 1 คัดลอก Folder002, ... Folder100

คุณสามารถใช้ for /l วนซ้ำในไฟล์แบตช์เพื่อทำสิ่งนี้

ไฟล์แบตช์ต่อไปนี้แสดงรายการชื่อโฟลเดอร์ที่ต้องการ:

@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

หมายเหตุ:

  • ไฟล์แบตช์ควรอยู่ในไดเรกทอรีหนึ่งระดับด้านบน Folder001
  • แทนที่ echo คำสั่งด้วย robocopy คำสั่งที่ทำสำเนาสำหรับคุณ
  • เพื่อประมวลผลชื่อด้วย 4 ตัวเลข (ตัวอย่างเช่น Folder1000, ... Folder 2000) คุณต้องเปลี่ยนไฟล์แบตช์
    • แทนที่ (1,1,100) กับ (1000,1,2000)
    • แทนที่ "_number=00%%i" กับ "_number=000%%i"
    • แทนที่ Folder!_number:~-3! กับ Folder!_number:~-4!

วากยสัมพันธ์

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

สำคัญ

  • เริ่มต้น: หมายเลขแรก
  • ขั้นตอน: จำนวนเงินที่จะเพิ่มลำดับ
  • สิ้นสุด: หมายเลขสุดท้าย

ที่มา - สำหรับ / l


อ่านเพิ่มเติม

  • ดัชนี A-Z ของบรรทัดคำสั่ง Windows CMD - การอ้างอิงที่ยอดเยี่ยมสำหรับทุกสิ่งที่เกี่ยวข้องกับ Windows cmd line
  • enabledelayedexpansion - การขยายเวลาที่ล่าช้าจะทำให้ตัวแปรขยายตัวในเวลาดำเนินการแทนเวลาแจง
  • สำหรับ / l - ดำเนินการตามคำสั่งอย่างมีเงื่อนไขสำหรับช่วงของตัวเลข
  • ชุด - แสดงตั้งค่าหรือลบตัวแปรสภาพแวดล้อม CMD การเปลี่ยนแปลงที่ทำกับ SET จะยังคงอยู่เฉพาะช่วงเวลาของเซสชัน CMD ปัจจุบัน
  • ตัวแปร - แยกส่วนของตัวแปร (สตริงย่อย)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.