ฉันจะใช้บรรทัดคำสั่ง 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")}