Как я могу использовать командную строку 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
Переименование поведения иногда «менее интуитивно»; например...
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. В новом имени соответствующего файла подстановочные индексы заменяются фактическими символами, которые соответствуют ссылочной ссылке. подстановочные знаки в оригинальном имени файла.
и
Обратите внимание, что оболочка обычно расширяет подстановочные знаки * и?, Что в случае ren нежелательно. Таким образом, в большинстве случаев необходимо заключать шаблон поиска в кавычки.
man ren
? Вопрос был о Windows / cmd
. Те теперь предоставляют man
страницы? Что такое ren-1.0
и как мы можем просматривать его man
страницу в контексте?
это просто
ren *.* *.jpg
попробуйте это в командной строке
Переименовать несколько расширений файлов:
Вы хотите изменить ringtone1.mp3
, ringtone2.mp3
чтобы ringtone1.wav
,ringtone2.wav
Вот как это сделать: я в d drive по командной строке (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
Это п AME и е х натяжение %%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/