使用batch file脚本查找string的子string

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

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

请解释如何在batch file中执行此操作。

看看http://www.dostips.com/DtTipsStringManipulation.php 。 他们有相当的教程。

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

这部分: "!newName:* =!" 意思是“取newName变量并从其值开始替换,直到没有空的空间”,即直到第一个空格消除开始。

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

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

第一个遍历所有的.txt文件。

第二个for将每个文件名分割为初始数字,其余的使用tokens=1,*%I得到的数字(这是忽略)和%J得到新的文件名。