Подтвердить что ты не робот

Как сохранить имя хоста в переменной в файле .bat?

Я хотел бы преобразовать этот синтаксис /bin/sh в широко совместимый пакет Windows script:

host=`hostname`
echo ${host}

Как это сделать, чтобы он работал на любой машине Windows Vista, Windows XP и Windows 2000?

Чтобы уточнить: я хотел бы продолжить работу в программе и использовать имя хоста, хранящееся в переменной host. Другими словами, большая цель программы - не просто эхо-имя хоста.

4b9b3361

Ответ 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%

Этого достаточно. нет необходимости в дополнительных циклах большого кодирования.