Как сохранить имя хоста в переменной в файле .bat?
Я хотел бы преобразовать этот синтаксис /bin/sh
в широко совместимый пакет Windows script:
host=`hostname`
echo ${host}
Как это сделать, чтобы он работал на любой машине Windows Vista, Windows XP и Windows 2000?
Чтобы уточнить: я хотел бы продолжить работу в программе и использовать имя хоста, хранящееся в переменной host
. Другими словами, большая цель программы - не просто эхо-имя хоста.
Ответы
Ответ 1
Я обычно читаю вывод команды в переменные с помощью команды 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
в командной строке.
Ответ 2
hmm - что-то вроде этого?
set host=%COMPUTERNAME%
echo %host%
EDIT: расширение ответа на дрожание и использование метода в ответе на этот вопрос для установки переменной среды с результатом запуска приложение командной строки:
@echo off
hostname.exe > __t.tmp
set /p host=<__t.tmp
del __t.tmp
echo %host%
В любом случае "host" создается как переменная среды.
Ответ 3
Я использую переменную окружения COMPUTERNAME
:
copy "C:\Program Files\Windows Resource Kits\Tools\" %SYSTEMROOT%\system32
srvcheck \\%COMPUTERNAME% > c:\shares.txt
echo %COMPUTERNAME%
Ответ 4
Почему бы и нет?:
set host=%COMPUTERNAME%
echo %host%
Ответ 5
Просто создайте файл .bat с линией
hostname
. Это. Windows также поддерживает команду hostname.
Ответ 6
set host=%COMPUTERNAME%
echo %host%
Этого достаточно. нет необходимости в дополнительных циклах большого кодирования.