gpt4 book ai didi

windows - 在批处理文件中打印数组元素值

转载 作者:可可西里 更新时间:2023-11-01 10:35:48 32 4
gpt4 key购买 nike

在下面的代码中打印数组元素值有问题:

@echo off 
setlocal enabledelayedexpansion enableextensions
for /F "tokens=2,3 delims= " %%a in ('findstr "associationMaxRtx maxIncomingStream maxOutgoingStream initialAdRecWin maxUserdataSize mBuffer nThreshold PathMaxRtx maxInitialRtrAtt minimumRto maximumRto initialRto rtoAlphaIndex tSack" C:\Users\ephajin\logs.txt') do (
set /A count+=1
set vartmp1=%%a
set vartmp2=%%b
set "array[!count!]="%%a %%b""
)



(for /L %%i in (1,1,%count%) do echo !array[%%i]!
) > result.txt

在结果文件中我得到了输出

ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.

它不打印数组值。

问题可能是由于 setlocal enabledelayedexpansion 但您如何纠正它?

最佳答案

FOR /L %%a IN (1,1,4) DO ECHO !array[%%a]!

FOR /f "tokens=1*delims==" %%a IN ('set array[') DO ECHO %%b

这两行中的任何一行都应该向您显示您似乎需要的内容。

由于第一个与您的代码效果相同,我怀疑 array[*] 数组未正确建立。你可以通过执行来检查这个

set array[

准确显示已设置的内容。其实,

set

应该显示所有已定义的用户变量。

set|more

会显示相同的内容,但允许您翻阅它们。

SET "result="
FOR /f "tokens=1*delims==" %%a IN ('set array[') DO SET "result=!result! %%b"
ECHO result: "%result%" or "%result:~1%"
echo===============
SET "result="
FOR /L %%a IN (1,1,4) DO SET "result=!result! !array[%%a]!"
ECHO result: "%result%" or "%result:~1%"

设置 result 的两种方法 - 数组中值的列表。当然,set 指令中的空格几乎可以是您想要的任何字符 - 例如,逗号。结果显示时带有前导空格和删除的空格。

关于windows - 在批处理文件中打印数组元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27543716/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com