ฉันจะใช้บรรทัดคำสั่ง Windows เพื่อเปลี่ยนนามสกุลไฟล์เป็นพันไฟล์ได้*****.jpgอย่างไร
ฉันจะใช้บรรทัดคำสั่ง Windows เพื่อเปลี่ยนนามสกุลไฟล์เป็นพันไฟล์ได้*****.jpgอย่างไร
คำตอบ:
คุณสามารถใช้ren(เช่นในการเปลี่ยนชื่อ ):
ren *.XXX *.YYY
และแน่นอนเปลี่ยน XXX และ YYY สำหรับส่วนขยายที่เหมาะสม มันจะเปลี่ยนจาก XXX เป็น YYY หากคุณต้องการเปลี่ยนส่วนขยายทั้งหมดให้ใช้สัญลักษณ์แทนอีกครั้ง:
ren *.* *.YYY
วิธีหนึ่งในการทำให้งานนี้เกิดขึ้นซ้ำ ๆ คือการใช้FORคำสั่ง มันสามารถใช้กับ/Rตัวเลือกในการใช้คำสั่งซ้ำกับไฟล์ที่ตรงกัน ตัวอย่างเช่น:
for /R %x in (*.txt) do ren "%x" *.renamed
จะเปลี่ยน.txtส่วนขยายทั้งหมดเป็น.renamedแบบเรียกซ้ำโดยเริ่มต้นในไดเรกทอรีปัจจุบัน
%xเป็นตัวแปรที่เก็บชื่อไฟล์ที่ตรงกัน
และเนื่องจากคุณมีไฟล์หลายพันไฟล์โปรดรอจนกว่าเคอร์เซอร์จะเริ่มกะพริบอีกครั้งเพื่อระบุว่าทำงานเสร็จแล้ว
หมายเหตุ: ใช้งานได้เฉพาะบน cmd จะไม่ทำงานกับ Powershell หรือ Bash
ren *.* *.jpg > E:\Log\Cmd\ExtChange\ext.txtหรือไม่
FOR
บน CMD
ชนิด
ren *.* *.jpg
. จะเลือกไฟล์ทั้งหมดและเปลี่ยนชื่อเป็น * (ชื่อที่เคยมี) รวมถึงนามสกุลเป็น jpg
พฤติกรรมการเปลี่ยนชื่อบางครั้ง 'น้อยกว่าสัญชาตญาณ'; ตัวอย่างเช่น...
ren * .THM * .jpg จะเปลี่ยนชื่อไฟล์ THM ของคุณให้มีนามสกุลเป็น. jpg เช่น: GEDC003.THM จะเป็น GEDC003.jpg
ren * .THM * b.jpg จะเปลี่ยนชื่อไฟล์ THM ของคุณเป็น * .THMb.jpg เช่น: GEDC004.THM จะกลายเป็น GEDC004.THMb.jpg
ren * .THM * .b.jpg จะเปลี่ยนชื่อไฟล์ THM ของคุณเป็น * .b.jpg เช่น: GEDC005.THM จะกลายเป็น GEDC005.b.jpg
หมายเหตุ: ไม่ใช่สำหรับ Windows
การใช้ ren-1.0 แบบฟอร์มที่ถูกต้องคือ:
"ren *.*" "#2.jpg"
จาก man ren
รูปแบบการเปลี่ยนเป็นชื่อไฟล์อื่นที่มีดัชนีไวด์การ์ดในตัวซึ่งแต่ละตัวประกอบด้วยอักขระ # ตามด้วยตัวเลขจาก 1 ถึง 9 ในชื่อใหม่ของไฟล์ที่ตรงกันดัชนีตัวแทนจะถูกแทนที่ด้วยอักขระจริงที่ตรงกับที่อ้างอิง สัญลักษณ์แทนในชื่อไฟล์ดั้งเดิม
และ
โปรดทราบว่าโดยปกติเชลล์จะขยาย wildcards * และ? ซึ่งในกรณีของ ren ไม่พึงปรารถนา ดังนั้นในกรณีส่วนใหญ่จำเป็นต้องใส่รูปแบบการค้นหาในเครื่องหมายคำพูด
man ren? คำถามคือเกี่ยวกับ Windows cmd/ สิ่งเหล่านี้ให้manหน้าเว็บหรือไม่ อะไรคือสิ่งที่ren-1.0เราสามารถดูmanหน้าเว็บในบริบท?
ง่ายมาก
ren *.* *.jpg
ลองใช้คำสั่งนี้
สำหรับผู้ที่ต้องการทำสิ่งนี้ในไฟล์แบตช์รหัสนี้ใช้งานได้:
FOR /R "C:\Users\jonathan\Desktop\test" %%f IN (*.jpg) DO REN "%%f" *.png
ในตัวอย่างนี้ไฟล์ทั้งหมดที่มีนามสกุล. jpg ในไดเรกทอรี C: \ Users \ jonathan \ Desktop \ test เปลี่ยนเป็น * .png
เปลี่ยนชื่อนามสกุลไฟล์หลายไฟล์:
คุณต้องการเปลี่ยนringtone1.mp3, ringtone2.mp3เพื่อringtone1.wav,ringtone2.wav
นี่คือวิธีทำ: ฉันอยู่ในไดรฟ์ d พร้อมรับคำสั่ง (CMD) ดังนั้นฉันใช้:
d:\>ren *.* *.wav
นี่เป็นเพียงตัวอย่างของนามสกุลไฟล์คุณสามารถใช้นามสกุลไฟล์ประเภทใดก็ได้เช่น WAV, MP3, JPG, GIF, bmp, PDF, DOC, DOCX, TXT สิ่งนี้ขึ้นอยู่กับระบบปฏิบัติการของคุณ
และเนื่องจากคุณมีไฟล์หลายพันไฟล์โปรดรอจนกว่าเคอร์เซอร์จะเริ่มกะพริบอีกครั้งเพื่อระบุว่าทำงานเสร็จแล้ว
ในกรณีของฉันฉันมีไดเรกทอรีที่มีไฟล์มากกว่า 800 ไฟล์ซึ่งลงท้ายด้วย.StoredProcedure.sql(มีสคริปต์ด้วยSSMS )
โซลูชันที่โพสต์ด้านบนไม่ทำงาน แต่ฉันมากับสิ่งนี้:
(ขึ้นอยู่กับคำตอบของการเขียนโปรแกรมแบทช์ - รับเส้นทางสัมพัทธ์ของไฟล์ )
@echo off
setlocal enabledelayedexpansion
for %%f in (*) do (
set B=%%f
set B=!B:%CD%\=!
ren "!B!" "!B:.StoredProcedure=!"
)
สคริปต์ด้านบนจะลบสตริงย่อย.StoredProcedureออกจากชื่อไฟล์ ฉันแน่ใจว่ามันสามารถปรับให้ครอบคลุมกรณีเพิ่มเติมขอข้อมูลและรวมทั่วไปมากขึ้น
setคำสั่งสองคำของคุณด้วยคำสั่งเดียวนี้: set "B=%%~nxf". ( %%~nxfคือn ame และ e x tension ของ%%f) %cd%อาจไม่ถูกต้องเมื่อคุณทำซ้ำ
ฉันรู้ว่ามันเก่ามาก แต่ฉันได้ลงจอดแล้วและคำตอบที่ให้ไม่ได้ผลสำหรับฉันกับ powershell ดังนั้นหลังจากการค้นหาพบวิธีนี้
ที่จะทำใน powershell
Get-ChildItem -Path C:\Demo -Filter *.txt | Rename-Item -NewName {[System.IO.Path]::ChangeExtension($_.Name, ".old")}
เครดิตไปที่http://powershell-guru.com/powershell-tip-108-bulk-rename-extensions-of-files/
ทางเลือกอื่นในการเปลี่ยนชื่อไฟล์โดยใช้แพ็กเกจrenamer npm
ด้านล่างเป็นตัวอย่างของการเปลี่ยนชื่อนามสกุลไฟล์
renamer -d --path-element ext --find ts --replace js *
สิ่งที่ใช้ได้ผลสำหรับฉันคือสิ่งนี้ (ซีดีไปยังโฟลเดอร์ก่อน):
Get-ChildItem -Filter *.old | Rename-Item -NewName {[System.IO.Path]::ChangeExtension($_.Name, ".new")}