我有一个由数字,空格和名字组成的文件名。 例如, "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
得到新的文件名。