我有一个文件夹,其中包含以下文件:
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示例中非常清楚地解释了这一点。
为了理解所使用的命令及其工作原理,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。
-
echo /?
-
endlocal /?
-
for /?
-
if /?
-
ren /?
-
set /?
-
setlocal /?