我有一些文件要删除文件名中的前3个字符 我认为这会有效,但它只是输出:
MISEQPRF.txt
ECHO is off.
ECHO is off.
@echo off
for %%a in (%MIS*.TXT) do (
SET oldName = %%a
SET newName = %oldName:~3%
echo %%a
echo %oldName%
echo %newName%
)
pause
注意:我会修改为REN %aa %newName
,但要确保名称首先正确。
答案 0 :(得分:5)
您需要使用延迟扩展来使用在for循环中设置的变量。
尝试使用此略微修改的版本
@echo off
setlocal enabledelayedexpansion
for %%a in (MIS*.TXT) do (
set oldName=%%a
set newName=!oldName:~3!
echo !newName!
)
pause
另外,set
和=
之间不能有空格,必须加入。