เพิ่มคำต่อท้ายให้กับหลาย ๆ ชื่อโฟลเดอร์โดยคงชื่อเดิมไว้


2

โดยทั่วไปฉันมีหลายโฟลเดอร์ที่เรียกว่าชื่อต่างกัน ฉันต้องการเพิ่มคำต่อท้ายท้ายของแต่ละโฟลเดอร์และใน Windows (ไม่มีซอฟต์แวร์ของ บริษัท อื่น)

ตัวอย่างเช่น: Mercury, Venus, Earth, Mars

และฉันต้องการ: Mercury 2015, Venus 2015, Earth 2015, Mars 2015


1
โฟลเดอร์ทั้งหมดอยู่ภายใต้ไดเร็กทอรีรูททั่วไปหรือไม่? โฟลเดอร์ทั้งหมดในไดเรกทอรีรากจะถูกเปลี่ยนชื่อหรือไม่? คุณสามารถทำได้อย่างง่ายดายด้วยสคริปต์ PowerShell
Ob1lan

คำตอบ:


5

สิ่งนี้สามารถทำได้อย่างง่ายดายด้วย Powershell:

Get-ChildItem -Directory | ForEach {Rename-Item $_ "$_ 2015"}

ถ้าคุณต้องการที่จะทำแบบนี้ซ้ำต้นไม้โฟลเดอร์ (โฟลเดอร์ย่อย) เพิ่ม "-Recurse" หลังจาก -directory

สิ่งนี้เป็นหลักคือ:

  • Get-ChildItem (รับรายการทั้งหมดในโฟลเดอร์ปัจจุบัน)
  • -Directory (จำกัด การค้นหาเฉพาะโฟลเดอร์)
  • | ไปป์ผลลัพธ์ (ส่ง) ไปที่คำสั่งถัดไป
  • ForEach {} (สำหรับแต่ละโฟลเดอร์ที่พบ)
  • เปลี่ยนชื่อรายการ $ _ "$ _ 2015" (เปลี่ยนชื่อโฟลเดอร์เป็นชื่อเดียวกันด้วย "2015" ที่ส่วนท้าย)

ในกรณีนี้ $ _ เป็นวัตถุ curent ที่ส่งจากคำสั่งแรกไปยังที่สอง (รายการโฟลเดอร์) จากนั้นแทนแต่ละวัตถุย่อย (แต่ละโฟลเดอร์) ภายใน ForEach

อย่าลืม cd ไปยังโฟลเดอร์ฐานของคุณก่อนอื่นคุณจะพยายามเปลี่ยนชื่อโฟลเดอร์ผิด .. และถ้าคุณทำสิ่งนี้ภายใน C: \ windows \ system32 หรือคล้ายกันคุณกำลังมีปัญหา! (cd C: \ users \ me \ documents \ top_folder)

นี่เป็นการทดสอบบน windows 7 แต่ไวยากรณ์อาจแตกต่างกันเล็กน้อยสำหรับ windows รุ่นอื่น ๆ หากคุณสามารถบอกได้ว่าคุณใช้ Windows รุ่นใดฉันจะให้สายการบินหนึ่งเดียวกับคุณ

นอกจากนี้ .. โปรดจำไว้ว่าหากคุณเรียกใช้ซ้ำ ๆ คุณจะจบลงด้วย "โฟลเดอร์ของฉัน 2015 2015 2015 2015 2015" และมันจะเป็นความเจ็บปวดในการทำความสะอาด

หวังว่านี่จะช่วยได้


คำตอบที่ดี แต่การใช้ 'foreach' ในกรณีนี้ไม่จำเป็น คำสั่งนี้น่าจะเพียงพอ: Get-ChildItem -Directory | เปลี่ยนชื่อรายการ - ชื่อใหม่ {$ _. ชื่อ + "2015"}
Ob1lan

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

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