如何重命名不以特定前缀字符串开头的文件夹中的所有文件?
How to rename all files within a folder not starting with a specific prefix string?
我有一个文件夹,其中包含例如以下文件:
RAW_123432542_343.text
231453254_213.text
RAW_324324_32432423.text
32432423_4543.text
我需要的是重命名所有没有 RAW_
作为前缀的文件。该文件夹有数千个文件。
如何重命名文件夹中不以 RAW_
开头的所有文件?
这可以通过以下批处理代码来完成:
@echo off
setlocal EnableExtensions EnableDelayedExpansion
for %%I in ("C:\Temp\*.text") do (
set "FileName=%%~nI"
if /I not "!FileName:~0,4!" == "RAW_" ren "%%~I" "RAW_%%~nxI"
)
endlocal
如果将字符串分配给以 (
开头并以匹配的 )
结尾的代码块中的环境变量,并在同一代码块中引用该环境变量的字符串或字符串的一部分对于此重命名操作,代码块是必需的,必须使用延迟扩展,如上所示。命令 set
的帮助在一个简单的 IF 和一个简单的 FOR 示例中解释得非常清楚。
要了解使用的命令及其工作原理,请打开命令提示符 window,在其中执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。
echo /?
endlocal /?
for /?
if /?
ren /?
set /?
setlocal /?
我有一个文件夹,其中包含例如以下文件:
RAW_123432542_343.text
231453254_213.text
RAW_324324_32432423.text
32432423_4543.text
我需要的是重命名所有没有 RAW_
作为前缀的文件。该文件夹有数千个文件。
如何重命名文件夹中不以 RAW_
开头的所有文件?
这可以通过以下批处理代码来完成:
@echo off
setlocal EnableExtensions EnableDelayedExpansion
for %%I in ("C:\Temp\*.text") do (
set "FileName=%%~nI"
if /I not "!FileName:~0,4!" == "RAW_" ren "%%~I" "RAW_%%~nxI"
)
endlocal
如果将字符串分配给以 (
开头并以匹配的 )
结尾的代码块中的环境变量,并在同一代码块中引用该环境变量的字符串或字符串的一部分对于此重命名操作,代码块是必需的,必须使用延迟扩展,如上所示。命令 set
的帮助在一个简单的 IF 和一个简单的 FOR 示例中解释得非常清楚。
要了解使用的命令及其工作原理,请打开命令提示符 window,在其中执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。
echo /?
endlocal /?
for /?
if /?
ren /?
set /?
setlocal /?