2

初心者です。私の仕事は、フォルダー内のファイルの名前を変更することです。まず、ここに私のコードの一部があります:-

setlocal enabledelayedexpansion
set tempLogDate=0
set g=0

for /r %targetStore% %%i IN (*2013*.*) do (
  set tempLogDate=9
  set g=!g:%tempLogDate%=!
)

問題は、変数 %tempLogDate% の値が 9 ではなく 0 であることです。変数展開 (私が持っている) を使用する必要があることはわかっていますが、「set g=!g: %tempLogDate%.rar=!」というコードを置き換えることはできません。「set g=!g: !tempLogDate!.rar=!」に、文字をエスケープしようとしましたが、結果が得られませんでした。皆さん、助けてください..よろしくお願いします

4

1 に答える 1

3

delayed expansionsetlocal /?およびを探してくださいendlocal /?。例:

@ECHO OFF &setlocal enabledelayedexpansion
set "tempLogDate=0"
set "g=0"

for /r %targetStore% %%i IN (*2013*.*) do (
  set "tempLogDate=9"
  CALL SET "g=%%g:!tempLogDate!=%%"
)
于 2013-07-15T07:49:13.570 に答える