【问题标题】:how to set the output of a command to a variable in batch file如何将命令的输出设置为批处理文件中的变量
【发布时间】:2014-06-18 19:12:00
【问题描述】:

我在尝试将 hostname 命令的输出设置为变量时遇到了困难。我想要做的是让输出的文本文件具有计算机的名称,例如 computer1.txt、computer2.txt 等,但我想在不制作临时文件的情况下做到这一点

    set HNAME =`hostname` 

这是我目前拥有的,但我正在使用的脚本同时在多台计算机上运行,​​我相信我创建的临时文件会导致 .txt 文件的名称出现问题。

    hostname >> hostname.txt


    set /p HNAME=<hostname.txt 

    pause

    echo hello > %HNAME%.txt
    pause

【问题讨论】:

标签: variables batch-file


【解决方案1】:

你必须使用 for 命令,像这样:

for /f "usebackq" %i in ( `somecommand` ) do set envar=%i

非常痛苦。为了 /?在命令行获取更多信息。

【讨论】:

  • 用于批处理文件写入%%i 而不是%i(两种情况)。
  • usebackq 在这种情况下会将'somecommand' 转换为字符串,但不会在已处理的命令中。应该使用```。还有更多 - 它只会分配给envar结果。
猜你喜欢
  • 2011-09-15
  • 2019-06-23
  • 2019-08-09
  • 2017-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多