代码之家  ›  专栏  ›  技术社区  ›  Edward Q. Bridges

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

  •  45
  • Edward Q. Bridges  · 技术社区  · 15 年前

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

    host=`hostname`
    echo ${host}
    

    如何才能在任何Windows Vista、Windows XP和Windows 2000计算机上工作?

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

    6 回复  |  直到 5 年前
        1
  •  53
  •   David Webb    15 年前

    我通常使用 FOR 命令保存时必须创建临时文件。例如:

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

    注意,上面的语句将在命令行上工作,但不能在批处理文件中工作。要在批处理文件中使用它,请退出 % 为了 两次陈述:

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

    你还有很多事要做 为了 . 要了解更多详细信息,只需键入 HELP FOR 在命令提示下。

        2
  •  54
  •   Community THelper    7 年前

    嗯-像这样?

    set host=%COMPUTERNAME%
    echo %host%
    

    编辑 :扩展抖动的答案并在答案中使用技术 this question 要使用运行命令行应用程序的结果设置环境变量,请执行以下操作:

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

    在这两种情况下,“主机”都是作为环境变量创建的。

        3
  •  10
  •   Peter Mortensen Leslie    14 年前

    我正在使用环境变量 COMPUTERNAME :

    copy "C:\Program Files\Windows Resource Kits\Tools\" %SYSTEMROOT%\system32
    srvcheck \\%COMPUTERNAME% > c:\shares.txt
    echo %COMPUTERNAME%
    
        4
  •  5
  •   sth Wojciech Parzych    14 年前

    为什么不呢?:

    set host=%COMPUTERNAME%
    echo %host%
    
        5
  •  1
  •   Peter Mortensen Leslie    14 年前

    只需创建一个.bat文件

    hostname
    

    在里面。就是这样。Windows还支持hostname命令。

        6
  •  0
  •   Ariful Huq    5 年前
     set host=%COMPUTERNAME%
     echo %host%
    

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