我想将此/bin/sh
语法转换为广泛兼容的 Windows 批处理脚本:
host=`hostname`
echo ${host}
如何执行此操作以使其适用于任何 Windows Vista、Windows XP 和 Windows 2000 机器?
澄清一下:然后我想继续程序并使用存储在变量中的主机名host
。换句话说,该程序的更大目标不是简单地回显主机名。
我想将此/bin/sh
语法转换为广泛兼容的 Windows 批处理脚本:
host=`hostname`
echo ${host}
如何执行此操作以使其适用于任何 Windows Vista、Windows XP 和 Windows 2000 机器?
澄清一下:然后我想继续程序并使用存储在变量中的主机名host
。换句话说,该程序的更大目标不是简单地回显主机名。
嗯 - 像这样的东西?
set host=%COMPUTERNAME%
echo %host%
编辑:扩展 jitter 的答案,并在这个问题的答案中使用一种技术来设置环境变量,结果是运行命令行应用程序:
@echo off
hostname.exe > __t.tmp
set /p host=<__t.tmp
del __t.tmp
echo %host%
在任何一种情况下,“主机”都被创建为环境变量。
我通常使用命令将命令输出读入变量,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
在命令提示符处键入。
我正在使用环境变量COMPUTERNAME
:
copy "C:\Program Files\Windows Resource Kits\Tools\" %SYSTEMROOT%\system32
srvcheck \\%COMPUTERNAME% > c:\shares.txt
echo %COMPUTERNAME%
为什么不这样?:
set host=%COMPUTERNAME%
echo %host%
只需使用该行创建一个 .bat 文件
hostname
在里面。就是这样。Windows 还支持主机名命令。
set host=%COMPUTERNAME%
echo %host%
这个就够了。不需要额外的大编码循环。