对于批处理循环

克里斯·A

我试图将.sh脚本重写为.bat文件,以便可以在Windows VM上对其进行测试。

我在FOR / F循环中遇到问题,我无法使用在循环中设置的变量,对此我感到非常沮丧。我已经四处寻找了一段时间,并且启用了延迟扩展功能,但是没有运气。下面是一段代码:

setlocal ENABLEDELAYEDEXPANSION
FOR /F "eol=; tokens=1,2,3,4,5,6,7,8,9,10 delims=, " %%i in (%SOutPath%) do (

SET sKic1Length = 20
SET sRAMTar = %%i
SET admCode = %%j
SET pin1Code = %%k
SET pin2Code = %%l
SET sKic1 = %%m
SET sKic1Length = %%n
SET sKid1 = %%o
SET sKid1Length = %%p
SET sRAMMSL=%%r

IF sKic1Length EQU 16 SET sKic1Length=11
IF sKic1Length EQU 32 SET sKic1Length=15
IF sKic1Length EQU 48 SET sKic1Length=19
::This echo outputs 'Echo is off' so variable is empty
@echo %sKic1Length%  

)
::Also returns same
ECHO %sKid1Length% 

以下是我正在循环中读取的文件:

; ;, RAMTAR, ADM1, PIN1, PIN2, KIC1, KICLENGTH,KID1, KIDLENGTH, RAMMSL
000000, 17182320, 2387, 1116, 607038CA34A91FB1, 16, 607038CA34A91FB, 16, 0200

我将不胜感激。

谢谢

汤玛士

您必须使用!而不是循环中ENABLEDELAYEDEXPANSION上的%

@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "eol=; tokens=1,2,3,4,5,6,7,8,9,10 delims=, " %%i in (%SOutPath%) do (
    set "sKic1Length=20"
    set "sRAMTar=%%i"
    set "admCode=%%j"
    set "pin1Code=%%k"
    set "pin2Code=%%l"
    set "sKic1=%%m"
    set "sKic1Length=%%n"
    set "sKid1=%%o"
    set "sKid1Length=%%p"
    set "sRAMMSL=%%r"
    if "!sKic1Length!" equ "16" set "sKic1Length=11"
    if "!sKic1Length!" equ "32" set "sKic1Length=15"
    if "!sKic1Length!" equ "48" set "sKic1Length=19"
    echo.!sKic1Length!
)
echo.%sKid1Length% 
endlocal

如果最后一个回声什么都不返回,那么我认为在最后一次迭代中%% p为空。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

对于批处理文件中的循环

来自分类Dev

批处理脚本循环

来自分类Dev

批处理循环

来自分类Dev

对于每个批处理文件中不起作用的循环

来自分类Dev

对于批处理语言中的Loop

来自分类Dev

批处理脚本“继续”循环?

来自分类Dev

SLURM批处理数组循环?

来自分类Dev

批处理和“ for”循环的问题

来自分类Dev

使用WMIC批处理循环

来自分类Dev

批处理变量串联的循环

来自分类Dev

批处理文件以“”循环

来自分类Dev

批处理条件FOR循环嵌套IF

来自分类Dev

在 cmd 批处理脚本递归循环中,获取相对于脚本文件的匹配文件路径

来自分类Dev

Windows批处理文件处理-循环

来自分类Dev

Windows批处理文件处理-循环

来自分类Dev

批处理-在for循环中设置变量

来自分类Dev

批处理文件“ for”循环-多行

来自分类Dev

批处理中for循环中的空白

来自分类Dev

批处理循环菜单(多项选择)

来自分类Dev

Windows批处理转到for循环中

来自分类Dev

批处理是否有任何循环或引用?

来自分类Dev

批处理脚本在for循环后结束

来自分类Dev

批处理文件中的for循环问题

来自分类Dev

循环增量值ENABLEDELAYEDEXPANSION的批处理

来自分类Dev

批处理循环%% i不会扩展

来自分类Dev

执行循环以运行.dat批处理分析

来自分类Dev

批处理文件循环带空格

来自分类Dev

批处理文件:递归循环

来自分类Dev

批处理文件中的For循环