1

我有一些文件,我想从文件名中删除前 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但首先要确保名称正确。

4

1 回答 1

7

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

试试这个稍微修改过的版本

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

set此外, and之间不能有空格=,它们必须连接起来。

于 2012-07-12T10:55:56.467 回答