【发布时间】: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
【问题讨论】:
-
在批量分配字符串时要非常小心。
set和set /p对=的 both 两侧的空格敏感。您的set HNAME =...会设置一个名为“HNAMEspace”的变量,并且还会在分配的值中包含行上的任何尾随空格,这可能很难发现。set "HNAME=value"安全地忽略尾随空格。另请注意,除了set "HNAME=value"中的封闭兔子耳朵外,任何“引号”字符都包含在分配的值中。
标签: variables batch-file