Batch file 使用.bat更改当前文件夹和子目录上特定文件类型的扩展名

Batch file 使用.bat更改当前文件夹和子目录上特定文件类型的扩展名,batch-file,batch-rename,Batch File,Batch Rename,我想将特定文件夹和子目录中的所有.log as.ok重命名为从包含以下内容的文件夹运行.bat文件: for /R %%x in (*.log) do rename "%%x" "%%~nx.ok" /递归R %%~nx表示不带扩展名的文件名 从包含以下内容的文件夹运行.bat文件: for /R %%x in (*.log) do rename "%%x" "%%~nx.ok" /递归R %%~nx表示不带扩展名的文件名 以下各项通常可以正常工作: @echo off for /r "

我想将特定文件夹和子目录中的所有.log as.ok重命名为

从包含以下内容的文件夹运行.bat文件:

for /R %%x in (*.log) do rename "%%x" "%%~nx.ok"
  • /递归R
  • %%~nx表示不带扩展名的文件名

从包含以下内容的文件夹运行.bat文件:

for /R %%x in (*.log) do rename "%%x" "%%~nx.ok"
  • /递归R
  • %%~nx表示不带扩展名的文件名

以下各项通常可以正常工作:

@echo off
for /r "PathToYourFolderHere" %%F in (.) do ren "%%F\*.log" *.ok
但是,如果在驱动器上启用了短文件名,并且扩展名超过3个字符,则上述问题可能会出现。它还将重命名文件,如
name.log2
,因为短名称的扩展名为
.log

以下仅重命名true
.log
文件:

@echo off
for /f "eol=: delims=" %%F in (
  '"dir /b /s /a-d PathToYourFolder\*.log|findstr /lie .log"'
) do ren "%%F" *.ok

注意:有关如何重命名通配符的规则可以在中找到,以下规则通常可以正常工作:

@echo off
for /r "PathToYourFolderHere" %%F in (.) do ren "%%F\*.log" *.ok
但是,如果在驱动器上启用了短文件名,并且扩展名超过3个字符,则上述问题可能会出现。它还将重命名文件,如
name.log2
,因为短名称的扩展名为
.log

以下仅重命名true
.log
文件:

@echo off
for /f "eol=: delims=" %%F in (
  '"dir /b /s /a-d PathToYourFolder\*.log|findstr /lie .log"'
) do ren "%%F" *.ok

注意:有关如何重命名通配符的规则可以在+1中找到,这在大多数情况下都有效。但如果启用了短文件名,它也会重命名文件,如
name.logX
。如果短名称被禁用,或者如果不存在以
.log
+1开头的长度超过3个字符的扩展名,则它将始终有效,这在大多数情况下都有效。但如果启用了短文件名,它也会重命名文件,如
name.logX
。如果短名称被禁用,或者不存在以
.log
开头的超过3个字符的扩展名,则它将始终有效。