【问题标题】:Problems with variables when trying to log output [duplicate]尝试记录输出时的变量问题[重复]
【发布时间】:2021-12-18 11:46:43
【问题描述】:

我目前正在处理一个批处理文件,它运行多个命令、从文本文件中读取值等。 我面临的问题是我无法正确设置变量。

以下代码 sn -p 演示了我的问题:

>> %userprofile%\AppData\Local\Temp\test.log 2>&1 (
    echo ### Fetching language...
    powershell -c "(Get-UICulture).Parent.Name" > lang.txt
    set /p LANG=<lang.txt
    echo Your language = %LANG%
)

输出:

### Fetching language...
Your language =

如果删除行 &gt;&gt; %userprofile%\AppData\Local\Temp\test.log 2&gt;&amp;1 一切正常,但输出不会写入文件。

我错过了什么?

到目前为止,谢谢!

【问题讨论】:

    标签: batch-file variables logging scoping


    【解决方案1】:

    当解释器在您的第一行中看到左括号时,就会评估您的 %LANG%-Var。这可以通过这种方式禁用:

    SETLOCAL ENABLEDELAYEDEXPANSION
    >> %userprofile%\AppData\Local\Temp\test.log 2>&1 (
      echo ### Fetching language...
      powershell -c "(Get-UICulture).Parent.Name" > lang.txt
      set /p LANG=<lang.txt
      echo Your language = !LANG!
      )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 2021-01-31
      • 2016-12-23
      相关资源
      最近更新 更多