不是很明白你意思。你是说文本中的这些都是有对应的文件,是要把对应的文件名改成.rmvb后缀名吗?如果是,假设这些 rm 文件和文本文件都在同一个目录下,代码如下:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=4 delims=_,|" %%a in (1.txt) do (
set aa=%%a
ren !aa! !aa!vb)
出问题的原因是延迟变量和叹号,不是vbscript和execute。 因为开启了延迟变量,遇到叹号会扩充变量,把叹号到冒号之间内容替换为空了,造成语法错误。解决办法是去掉叹号,或者加转义字符^!
简单,使用 For /f命令 但是提问的不清楚
@Echo Off
For /f "tokens=*" %%i in (aaa.txt) do (
For /f "tokens=4 delims=|_" %%j in ("%%i") do (
Echo %% "%%jvb"
Echo %%i>"%%jvb"))
Pause