如何将主机名存储在.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命令。