當我啟用elayedexpension 時,我想呼叫名稱中包含其他變數的變數,這樣我的變數呼叫中就會有同心感嘆號。對于措辭不明確,我深表歉意;我對這個主題不是很熟悉。
這是我的代碼的一部分,顯示了我的問題:
set /a Freq[%%z]value[!value!] =%%y
echo Freq %%z value !value! is !Freq[%%z]value[!value!]!
照原樣,批處理解釋 !Freq[%%z]value[!value!]! 用 !'s 分解成不同的變數,我不認為我可以使用 %'s 代替,因為我在一個 for 回圈中,這個變數正在改變。我認為我不能使用另一個 for 回圈來替換 !value!也有 %%a 。
這是我的代碼的更完整的外觀:
set /a line=0
set /a goodLine=0
FOR /F "tokens=* delims=" %%x in (%file%) DO (
set /a line =1
echo Line is !line!
set data[!line!]=%%x
set /a value=0
set /a checkGood=0
FOR %%y in (%%x) DO (
set /a value =1
if !value!==1 (
set /a Freq=%%y
set /a checkFreq=%%y %% 10
if !checkFreq!==0 (
set /a checkGood=1
) else (echo bad)
) else (
if !checkGood!==1 (
for /l %%z in (40, 10, 330) do (
if !Freq!==%%z (
set /a Freq[%%z]value[!value!] =%%y
echo Freq %%z value !value! is !Freq[%%z]value[!value!]!
set /a Freq[%%z]quantity[!value!] =1
echo Freq %%z value !value! quantity is !Freq[%%z]quantity[!value!]!
)
)
) else (echo checkGood bad)
)
)
)
uj5u.com熱心網友回復:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET /a value=4
FOR /L %%z IN (1,1,5) DO set /a Freq[%%z]value[!value!]=%%z 10
SET Freq
ECHO ========================
FOR %%y IN (2,7) DO FOR /L %%z IN (1,1,5) DO (
set /a Freq[%%z]value[!value!] =%%y
SET Freq[%%z]value[!value!]
CALL echo Freq %%z value !value! is %%Freq[%%z]value[!value!]%%
)
GOTO :EOF
或者你可以使用for/f "tokens=2delims==" %%e in ('set Freq[%%z]value[!value!]') do echo %%e
取決于你真正想做什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/531203.html
上一篇:從txt檔案中提取內容并使用批處理制作包含該內容的txt檔案
下一篇:批量使用命令更改CMD的輸出語言
