代码之家  ›  专栏  ›  技术社区  ›  DBALUKE HUANG

为什么不能传递变量值?[副本]

  •  0
  • DBALUKE HUANG  · 技术社区  · 6 年前

    这个问题已经有了答案:

    我有一个批处理脚本,如下所示:

    setlocal enabledelayedexpansion
    for /f "tokens=1,2 skip=3 delims= " %%a in (Instance_list.txt) do (
    Set Intance_NAME=%%a
    echo %Intance_NAME%
    

    但是回声部分是空的(什么也没有)。
    你能告诉我为什么并帮我解决这个问题吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Gerhard    6 年前

    以下几点:

    你激活了 delayedexpansion 但不要使用它(参见 % 在最后一行 !

    您也不需要在空白处使用`“delims=”作为批处理中的默认分隔符。

    你没有用一个结束符来结束循环 (

    @echo off
    setlocal enabledelayedexpansion
    for /f "tokens=1,2 skip=3" %%a in (Instance_list.txt) do (
    Set Intance_NAME=%%a
    echo !Intance_NAME!
    )
    

    最后,你不需要 延期交货 如果不在循环中设置变量,那么也可以执行以下操作:

    @echo off
    for /f "tokens=1,2 skip=3" %%a in (Instance_list.txt) do echo %%a