ฉันต้องการแทนที่อักขระขีดล่างทั้งหมด ( _
) ด้วยช่องว่าง ( ) ในชื่อไฟล์
ฉันจะทำสิ่งนี้ได้อย่างรวดเร็วเมื่อฉันมี_
ตัวละครจำนวนมากที่จะแทนที่?
ฉันต้องการแทนที่อักขระขีดล่างทั้งหมด ( _
) ด้วยช่องว่าง ( ) ในชื่อไฟล์
ฉันจะทำสิ่งนี้ได้อย่างรวดเร็วเมื่อฉันมี_
ตัวละครจำนวนมากที่จะแทนที่?
คำตอบ:
vbScript ควรทำเพื่อคุณ สร้างไฟล์ชื่อ "rename_underscores.vbs" ที่มีสิ่งต่อไปนี้
Set objFso = CreateObject("Scripting.FileSystemObject")
Set Folder = objFSO.GetFolder("c:\test\")
For Each File In Folder.Files
sNewFile = File.Name
sNewFile = Replace(sNewFile,"_"," ")
if (sNewFile<>File.Name) then
File.Move(File.ParentFolder+"\"+sNewFile)
end if
Next
ตรวจสอบว่าชื่อโฟลเดอร์ถูกต้อง (ในตัวอย่างฉันใช้ c: \ test) จากนั้นดับเบิลคลิกที่ไฟล์ของคุณเพื่อทำการเปลี่ยนชื่อ
ผมขอแนะนำให้ใช้เครื่องมือของบุคคลที่ 3 เช่นกลุ่มเปลี่ยนชื่อยูทิลิตี้ ฟรีและมีตัวติดตั้งน้อยกว่า 1 MB
สิ่งนี้อยู่ภายในขอบเขตของไฟล์ dos bat สร้างไฟล์ bat (ใหม่ -> ไฟล์ข้อความเปลี่ยนชื่อนามสกุลเป็น. bat) จากนั้นคัดลอกส่วนสีฟ้าด้านล่างลงไป
ฉันจะแบ่งมันออกเป็นส่วน ๆ และอธิบายสิ่งที่กำลังทำอยู่
พิมพ์สถานะปัจจุบันของไดเรกทอรีเพื่อเปรียบเทียบในภายหลัง
dir /b
แสดงรายการไฟล์ในไดเรกทอรีจากนั้นสำหรับไฟล์ทั้งหมดที่มีเครื่องหมายขีดเส้นใต้และลงท้ายด้วย. txt ให้เรียก ProcessFile
for %%f in (*_*.txt) do call :ProcessFile %%f
goto :finished
ไวยากรณ์ "str =% str: x = y%" แทนที่อินสแตนซ์ของ x ด้วย y ในกรณีนี้เรากำลังแทนที่ "_" โดยไม่มีอะไร
:ProcessFile
set str=%1
rename %1 %str:_=%
goto :eof
แค่นั้นแหละ!
ตอนนี้มันเพิ่งพิมพ์สิ่งที่เปลี่ยนแปลงเพื่อให้เราสามารถยืนยันว่ามันทำงานได้ตามที่คาดไว้;
:finished
echo ----
dir /b
ผลลัพธ์ (ไม่ใช่ส่วนหนึ่งของไฟล์ bat)
baz_ing.txt
big_rawr.foo
foo_bar.txt
multiple_underscores_test.txt
----
bazing.txt
big_rawr.foo
foobar.txt
multipleunderscorestest.txt
อย่างที่คนอื่น ๆ พูดถึงไม่มีทางที่จะทำสิ่งที่คุณต้องการโดยไม่ต้องใช้สคริปต์หรือไฟล์แบทช์ ตัวอย่างเช่นใน PowerShell คุณสามารถทำสิ่งที่คุณต้องการได้ง่ายๆ:
cd "C:\Users\MyName\Documents\MyDirectory"
Dir | Rename-Item –NewName { $_.name –replace "_"," " }
เพียง แต่อย่าลืมแทนที่ "C: \ Users \ MyName \ Documents \ MyDirectory" ด้วยพา ธ ไปยังไดเรกทอรีของคุณ
สำหรับรายละเอียดเพิ่มเติมและตัวเลือกอื่น ๆ รวมถึงบางสิ่งที่คุณสามารถทำได้โดยใช้เพียง Explorer ดูที่นี่: http://www.howtogeek.com/111859/how-to-batch-rename-files-in-windows-4-ways-howto การเปลี่ยนชื่อ-หลายไฟล์ /
เครื่องมือเปลี่ยนชื่อบน Windows มีประสิทธิภาพที่สุดและฟรี http://www3.telus.net/pfrank/
สิ่งนี้ไม่ได้ตอบคำถามอย่างชัดเจน ('.. ใน Explorer') แต่ฉันพบซอฟต์แวร์ที่มีประโยชน์ที่สุดที่จะทำคือAdobe Bridge (ฟรี)
โบนัสเพิ่มเติม: รองรับ Regex!