1

我有由数字、空格和名称组成的文件名。例如,"023 filename1.txt"

我想创建一个重命名此类文件的批处理脚本。它需要识别子字符串并删除空格字符之前的所有内容。例如,"023 filename1.txt"将重命名为"filename1.txt".

请解释如何在批处理文件中执行此操作。

4

2 回答 2

2
@echo off
setlocal EnableDelayedExpansion
for %%a in (*.txt) do (
   set newName=%%a
   ren "%%a" "!newName:* =!"
)

这部分:"!newName:* =!"意思是“取newName变量,从它的值的开头替换到空无的空格”,即去掉开头直到第一个空格。

于 2012-07-15T19:10:20.427 回答
1

这只会回显它将执行的命令。删除第三行上的 echo 以实际进行重命名。

@echo off
for %%F in (*.txt) do (
  for /F "tokens=1,*" %%I in ("%%F") do echo ren "%%F" "%%J"
)

第一个for迭代所有.txt文件。

第二个for将每个文件名拆分为初始编号,其余使用tokens=1,*. %I获取数字(被忽略)并%J获取新文件名。

于 2012-07-15T19:19:37.443 回答