使用批处理文件脚本查找字符串的子字符串

时间:2012-07-15 18:43:32

标签: windows batch-file substring

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

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

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

这一部分:"!newName:* =!"表示“接受newName变量并从其值的开头替换,直到没有任何空格”,即消除开始直到第一个空格。

答案 2 :(得分:1)

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

@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获取新文件名。