如何使用Windows命令行将数千个文件的扩展名更改为*****.jpg
?
如何使用Windows命令行将数千个文件的扩展名更改为*****.jpg
?
Answers:
您可以使用ren
(就像在named中一样):
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
在命令提示符下尝试
在我的情况下,我的目录中包含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和e X的张力%%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/