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

我想将这个/bin/sh语法转换成一个广泛兼容的Windows批处理脚本:

 host=`hostname` echo ${host} 

如何做到这一点,以便它可以在任何Windows Vista,Windows XP和Windows 2000机器上工作?

澄清:然后我想继续在程序中使用存储在variableshost中的host 。 换句话说,程序的更大目标不是简单地回显主机名。

我通常使用FOR命令将命令输出读入variables,因为它不必创build临时文件。 例如:

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

请注意,上述语句将在命令行上工作,但不在batch file中。 要在batch file中使用它,通过将FOR语句中的%置换两次来跳过:

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

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

嗯 – 这样的事情?

 set host=%COMPUTERNAME% echo %host% 

编辑 :扩大对抖动的答案和使用技术在这个问题的答案设置环境variables与运行命令行应用程序的结果:

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

无论哪种情况,都会将“主机”创build为环境variables。

我正在使用环境variablesCOMPUTERNAME

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

为什么不呢?

 set host=%COMPUTERNAME% echo %host% 

只需用该行创build一个.bat文件

 hostname 

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