-4

我有一个文件夹,其中包含例如以下文件:

RAW_123432542_343.text
231453254_213.text
RAW_324324_32432423.text
32432423_4543.text

我需要的是重命名所有没有RAW_前缀的文件。该文件夹有数千个文件。

如何重命名文件夹中不以开头的所有文件RAW_

4

1 回答 1

0

例如,这可以使用以下批处理代码来完成:

@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

如果将字符串分配给代码块内的环境变量(,以匹配开始和结束,)并在同一代码块内引用此环境变量的字符串或部分字符串,对于此重命名操作,必须使用延迟扩展如上图所示。命令的帮助在一个简单的IF和一个简单的FOR示例上非常清楚地set解释了这一点。

要了解使用的命令及其工作原理,请打开命令提示符窗口,在其中执行以下命令,并仔细阅读每个命令显示的所有帮助页面。

  • echo /?
  • endlocal /?
  • for /?
  • if /?
  • ren /?
  • set /?
  • setlocal /?
于 2016-08-19T10:05:30.690 回答