Edw*_*ges 49 windows scripting batch-file
我想将此/bin/sh语法转换为广泛兼容的Windows批处理脚本:
host=`hostname`
echo ${host}
Run Code Online (Sandbox Code Playgroud)
如何做到这一点,以便它可以在任何Windows Vista,Windows XP和Windows 2000机器上运行?
澄清:我想继续在程序中使用存储在变量中的主机名host.换句话说,该程序的更大目标不是简单地回显主机名.
sea*_*n e 55
嗯 - 像这样的?
set host=%COMPUTERNAME%
echo %host%
Run Code Online (Sandbox Code Playgroud)
编辑:扩展抖动的答案,并在回答此问题时使用一种技术来设置一个环境变量,其结果是运行命令行应用程序:
@echo off
hostname.exe > __t.tmp
set /p host=<__t.tmp
del __t.tmp
echo %host%
Run Code Online (Sandbox Code Playgroud)
在任何一种情况下,'host'都是作为环境变量创建的.
Dav*_*ebb 55
我通常使用FOR命令将命令输出读入变量,因为它节省了必须创建临时文件.例如:
FOR /F "usebackq" %i IN (`hostname`) DO SET MYVAR=%i
Run Code Online (Sandbox Code Playgroud)
注意,上面的语句将在命令行上运行,但不在批处理文件中.要在批处理文件中使用它,%请将FOR它们放入语句中两次:
FOR /F "usebackq" %%i IN (`hostname`) DO SET MYVAR=%%i
ECHO %MYVAR%
Run Code Online (Sandbox Code Playgroud)
你可以做更多的事情FOR.有关更多详细信息,请HELP FOR在命令提示符下键
bra*_*ech 12
我正在使用环境变量COMPUTERNAME:
copy "C:\Program Files\Windows Resource Kits\Tools\" %SYSTEMROOT%\system32
srvcheck \\%COMPUTERNAME% > c:\shares.txt
echo %COMPUTERNAME%
Run Code Online (Sandbox Code Playgroud)