แบทช์ย้ายโฟลเดอร์ย่อยและไฟล์โดยเพิ่มระดับ


0

ฉันมีไดเรกทอรีที่มีลักษณะเช่นนี้

Root Folder
  - Folder A
    - Subfolder
        - File1
        - File2
        - File3
  - Folder B
    - Subfolder
        - File1
        - File2
        - File3
  - Folder C
    - Subfolder
        - File1
        - File2
        - File3

ตอนนี้ฉันต้องการย้ายโฟลเดอร์ย่อย & amp; จัดเก็บไฟล์ตามระดับและลบโฟลเดอร์เมื่อมีการเลื่อนขึ้นจึงควรมีลักษณะเช่นนี้

Root Folder
    - Subfolder
        - File1
        - File2
        - File3
    - Subfolder
        - File1
        - File2
        - File3
    - Subfolder
        - File1
        - File2
        - File3

มีวิธีการแบทช์ในการทำเช่นนี้ใน windows?

คำตอบ:


0

หากมีรูปแบบสำหรับ "โฟลเดอร์ [a | b]" ที่ไม่ซ้ำกันในชื่อของ "โฟลเดอร์ย่อย" ดังนั้นใช่นี่เป็นสคริปต์ชุดงานที่เรียบง่าย

for /d %%d in ("folder*") do call :doit "%%d"
exit /b

:doit
@echo.Moving contents of "%~1" to "%cd%"...
pushd "%~1"
forfiles /c "cmd /c move @file .."
popd
@echo.Removing "%~1"
rd "%~1"
exit /b

อีกครั้งมันเป็น มาก สำคัญที่ต้องเข้าใจว่าต้องใช้รูปแบบชื่อโฟลเดอร์ ("โฟลเดอร์ *") หากสิ่งนี้ทำซ้ำภายในโฟลเดอร์เนื้อหาของคุณ จะ สูญเสียข้อมูล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.