ย้ายไฟล์จากหลาย ๆ โฟลเดอร์ไปยังไดเรกทอรีหลักด้วยพรอมต์คำสั่ง


8

ฉันมีไฟล์. rar หลายไฟล์ในหลายโฟลเดอร์ดังนี้:

C:\Docs\Folder1\rarfile1-1.rar
C:\Docs\Folder1\rarfile1-2.rar
C:\Docs\Folder1\rarfile1-3.rar  

C:\Docs\Folder2\rarfile2-1.rar
C:\Docs\Folder2\rarfile2-2.rar
C:\Docs\Folder2\rarfile2-3.rar  

C:\Docs\Folder3\rarfile3-1.rar
C:\Docs\Folder3\rarfile3-2.rar
C:\Docs\Folder3\rarfile3-3.rar  

ฉันต้องการย้ายไฟล์. rar ทั้งหมดไปยังไดเรกทอรีหลัก 'C: \ Docs' ฉันมีโฟลเดอร์มากกว่า 3 โฟลเดอร์ดังนั้นฉันจึงคิดที่จะสร้างไฟล์แบตช์หรือบางอย่าง อะไรคือคำสั่งในการทำสิ่งนี้?
ขอบคุณ


ฉันค้นหาปัญหาที่คล้ายกันและฉันพบว่าคำตอบนี้มีประโยชน์
lalthomas

คำตอบ:


15

ผมได้ทำเพียงโปรแกรม commandline ที่ไม่ตรงนี้ (บวกแสดงสถิติบางส่วน) และค้นหาเพื่อดูว่าใครได้พยายามที่จะทำมันดังนั้นฉันสามารถแบ่งปันและบันทึกคนจากที่มีการคิดออก

มันสนุกมากที่จะเขียน ต้องการ. NET 3.5 ทำงานจาก commandline โทรด้วย -h หรือไม่มีพารามิเตอร์สำหรับการใช้งาน

MoveFilesUpFromSubfolders
(ซอร์สโค้ด)

ข้อเสนอแนะในเชิงบวก! :)

โอ้และภาพหน้าจอที่มีลักษณะเป็นอย่างไร:

                               


3
+1 เขียนโปรแกรมเพื่อแก้ปัญหาของใครบางคน นั่นคือความมุ่งมั่น!
Li-aung Yip

1
@ Li-aungYip ขอบคุณมากสำหรับคำชม! นอกจากนี้เนื่องจากสถานการณ์ฉันไม่ได้มีฮาร์ดไดรฟ์ที่ฉันเคยใช้รหัสในเวลาที่ฉันทำมัน (ต้องสูญเสียสิ่งนี้และสิ่งอื่น ๆ อีกมากมาย) ดังนั้นฉันจึงมีความสุขที่ได้เห็นที่นี่และดาวน์โหลดตอนนี้ ( รุ่งโรจน์สำหรับ Mediafire เพื่อเก็บไว้เป็นเวลานานด้วยการดาวน์โหลดน้อยและฉันโชคดีที่ฉันไม่ได้เก็บไว้ใน Megaupload!) ดังนั้นถ้าคุณใส่ไว้ในมุมมองที่มากกว่าที่คุณให้มากกว่าที่คุณจะได้รับ :)
Camilo มาร์ติน

การทำงานที่ดี! +1 และ 50 ตัวแทน ฉันรู้ว่านี่อายุ 4.5 ปี แต่มันมีประโยชน์มากสำหรับฉันเพราะฉันดาวน์โหลดไฟล์ 90+ ไฟล์ซึ่งมีมากกว่า 90 โฟลเดอร์ สิ่งนี้ช่วยให้ฉันวางไฟล์ทั้งหมดในโฟลเดอร์พาเรนต์

บทวิจารณ์เดียวที่ฉันมีคือเมื่อฉันพยายามใช้สิ่งนี้ข้อผิดพลาดเกี่ยวกับปัญหาที่เกิดขึ้นกับโฟลเดอร์ที่เก็บไว้และมันก็ไม่ได้ระบุสาเหตุ โดยใช้คำสั่ง -t เท่านั้นฉันสามารถระบุได้ว่าเหตุใดจึงเกิดปัญหากับโฟลเดอร์ (เนื่องจากชื่อมีอักขระ 250+ ตัว) นี่คือการหลีกเลี่ยงอย่างง่ายดายโดยการเน้นโฟลเดอร์ทั้งหมดและเปลี่ยนชื่อหนึ่งในนั้น (จากนั้นส่วนที่เหลือจะถูกต่อท้ายด้วยตัวเลข)

@ edmastermind29 ฉันมีความสุขสุด ๆ ที่รู้ว่ารหัสเก่าของฉันนั้นถูกใช้กับใครบางคนที่ยังคงอยู่ เชื่อหรือไม่ว่าที่เก็บซอร์สโค้ดถูกนำออกจาก mediafire เนื่องจากถูกตั้งค่าสถานะโดยอัตโนมัติว่าเป็นการละเมิดลิขสิทธิ์ (ซึ่งค่อนข้างไร้สาระเพราะไม่มีวิดีโอหรือเสียง แต่มีเพียงข้อความ) และฉันไม่รู้วิธีที่ฉันทำสิ่งนี้ . หากเป็นประโยชน์ใด ๆ ณ จุดนี้ฉันจะเขียนทุบตีหนึ่งซับเพื่อจัดการกับปัญหาเช่นนี้บางอย่างmv dir/sub/* dir; rmdir dir/subในวง
Camilo Martin

7

ลองดูสิ:

for /d %f in (docs\*) do (
pushd %f
move .\*.* ..
popd
)

คุณช่วยอธิบายเรื่องนี้อีกหน่อยได้ไหม?
นิค

@Nick: สำหรับโฟลเดอร์ทั้งหมดdocsให้ป้อนโฟลเดอร์ ย้ายไฟล์ทั้งหมดจากโฟลเดอร์ปัจจุบันไปยังโฟลเดอร์หลัก กลับไปที่โฟลเดอร์หลัก
Hello71

pushdและpopdไม่จำเป็นจริงๆ cdจะทำงานได้ดี
Hello71

ตามที่อธิบายโดย Hello71 สามารถทำได้ด้วยบรรทัดเดียว:for /d %f in (docs\\*) do move %f\\*.* docs
BillP3rd

1
NB ทั้งไฟล์ต้นฉบับด้านบนและไฟล์เดียวจะจัดการกับชื่อไฟล์ที่ซ้ำกันอย่างเหมาะสม
BillP3rd

5

คำตอบสำหรับคำถามของคุณนั้นง่ายมาก มันไม่ใช่สคริปต์ แต่มันจะทำ

ฉันคิดว่าคุณกำลังเรียกใช้ windows

  • วางตัวเองในไดเรกทอรี C: \ Docs
  • กด F3 (ค้นหา)
  • ค้นหา * .rar
  • กด Crtl + A
  • กด Ctrl + X
  • ปิดหน้าต่างค้นหาและอีกหนึ่งไปที่ C: \ Dosc ใน explorer
  • วางไฟล์ที่ตัดโดยกด CTRL + V

+1 สำหรับการแก้ปัญหาที่ดีและเรียบง่ายโดยไม่มีบุคคลที่สามหรือสคริปต์ใด ๆ
Syakur Rahman

+ 1 วิธีที่ดีที่สุดและเร็วที่สุด A +++
Sickest

3

การดูดใช้งานได้สำหรับฉันในปัญหานี้

การดูดเป็นแอพพกพาฟรีที่จะช่วยจัดการโฟลเดอร์ที่ยุ่งเหยิงในเวลาไม่นาน

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


0

ตัวอย่างของการคัดลอกหรือย้ายไฟล์จากไดเรกทอรีย่อยไปยังไดเรกทอรีเดียว

สำหรับ / f "tokens = *"% a in ('dir "C: \ Temp \ Epub * .epub" / s / b') ทำสำเนา / y "% a" C: \ Temp \ epub

สำหรับ / f "tokens = *"% a in ('dir "C: \ Temp \ Epub * .epub" / s / b') จะย้าย / y "% a" C: \ Temp \ epub

"tokens = * คือการจับภาพเส้นทางด้วยอักขระพิเศษ


-1

สิ่งนี้น่าจะใช้ได้:

move C:\Docs\*\* C:\Docs

2
ฉันได้รับข้อผิดพลาด: ชื่อไฟล์, ชื่อไดเรกทอรี, หรือไวยากรณ์ของฉลากปริมาณไม่ถูกต้อง
นิค

** ไม่ทำงาน
นิค

คุณต้องตรวจสอบให้แน่ใจว่าได้ใส่ `` `'' ในตัวและไม่ได้หลบหนีจากโปรแกรมแก้ไขข้อความ
Hello71

การออกคำสั่งนี้จากพรอมต์ CMD (ใน Windows 7) จะสร้างข้อผิดพลาดที่ระบุโดย Nick
BillP3rd

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