如何在批处理文件中删除文件名中的前3个字符

Blu*_*ppy 0 batch-file

我有一些文件,我想删除文件名中的前3个字符我认为这将工作,但它只是输出:

MISEQPRF.txt
ECHO is off.
ECHO is off.
Run Code Online (Sandbox Code Playgroud)
@echo off
for %%a in (%MIS*.TXT) do (
  SET oldName = %%a
  SET newName = %oldName:~3%
  echo %%a
  echo %oldName%
  echo %newName%
)
pause
Run Code Online (Sandbox Code Playgroud)

注意:我将修改为REN %aa %newName但要确保名称首先正确.

Bal*_*i C 6

您需要使用延迟扩展来使用在for循环中设置的变量.

请尝试使用此略微修改的版本

@echo off
setlocal enabledelayedexpansion
for %%a in (MIS*.TXT) do (
set oldName=%%a
set newName=!oldName:~3!
echo !newName!
)
pause
Run Code Online (Sandbox Code Playgroud)

此外,您set和之间不能有空格=,必须加入.