如何将主机名存储在.bat文件中的变量中?

时间:2009-06-15 21:00:54

标签: windows scripting batch-file

我想将此/bin/sh语法转换为广泛兼容的Windows批处理脚本:

host=`hostname`
echo ${host}

如何执行此操作以便它可以在任何Windows Vista,Windows XP和Windows 2000计算机上运行?

澄清一下:我想继续在程序中使用存储在变量host中的主机名。换句话说,该计划的更大目标不是简单地回显主机名。

6 个答案:

答案 0 :(得分:55)

嗯 - 这样的事情?

set host=%COMPUTERNAME%
echo %host%

编辑:扩展抖动的答案并在this question的答案中使用一种技术来设置环境变量,并运行命令行应用程序的结果:

@echo off
hostname.exe > __t.tmp
set /p host=<__t.tmp
del __t.tmp
echo %host%

在任何一种情况下,'host'都是作为环境变量创建的。

答案 1 :(得分:53)

我通常使用FOR命令将命令输出读入变量,因为它节省了创建临时文件的时间。例如:

FOR /F "usebackq" %i IN (`hostname`) DO SET MYVAR=%i

注意,上述语句可以在命令行中使用,但不能在批处理文件中使用。要在批处理文件中使用它,请将%语句中的FOR放两次:

FOR /F "usebackq" %%i IN (`hostname`) DO SET MYVAR=%%i
ECHO %MYVAR%

您可以使用FOR做更多事情。有关更多详细信息,请在命令提示符下键入HELP FOR

答案 2 :(得分:11)

我正在使用环境变量COMPUTERNAME

copy "C:\Program Files\Windows Resource Kits\Tools\" %SYSTEMROOT%\system32
srvcheck \\%COMPUTERNAME% > c:\shares.txt
echo %COMPUTERNAME%

答案 3 :(得分:5)

为什么不这样?:

set host=%COMPUTERNAME%
echo %host%

答案 4 :(得分:0)

只需使用

行创建一个.bat文件
hostname

在里面。而已。 Windows还支持hostname命令。

答案 5 :(得分:-1)

 set host=%COMPUTERNAME%
 echo %host%

这个够了。不需要额外的大编码循环。