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また、との間にスペースを入れることはできません=。結合する必要があります。

于 2012-07-12T10:55:56.467 に答える