即时尝试将主机名命令的输出设置为变量时遇到困难。我想要做的是让输出的文本文件具有计算机的名称,例如computer1.txt,computer2.txt等,但是我想这样做而不用制作临时文件,例如如何将命令的输出设置为批处理文件中的变量
set HNAME =`hostname`
这是我目前的,但我正在使用的脚本正在同一台计算机上运行,我相信我创建的临时文件导致与.txt文件的名称问题。
hostname >> hostname.txt
set /p HNAME=<hostname.txt
pause
echo hello > %HNAME%.txt
pause
可能重复的[Windows批处理文件:如何设置一个变量与命令的结果?](http://stackoverflow.com/questions/889518/windows-batch-files-how-to-set-a - 变量与命令的结果) – npocmaka
和[Windows批处理帮助从命令输出设置变量](http://stackoverflow.com/q/1746475)和[批处理文件 - 设置命令输出作为变量](http://stackoverflow.com/q/23028318) –
批量字符串分配时要非常小心。 'set'和'set/p'对''='**'两边的空格敏感。您设置的HNAME = ...会设置一个名为“HNAME space”的变量,并且在分配的值中还包括行中的任何尾随空格,这些空格可能很难找到。 'set“HNAME = value”'安全地忽略尾随空格。还要注意,除了'set“HNAME = value”'中的封闭兔耳之外,任何“quotish”字符都被包含在分配的值中。 – Magoo