Как сохранить имя хоста в переменной в файле .bat? - PullRequest
46 голосов
/ 16 июня 2009

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

host=`hostname`
echo ${host}

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

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

Ответы [ 6 ]

55 голосов
/ 16 июня 2009

хмм - как то так?

set host=%COMPUTERNAME%
echo %host%

РЕДАКТИРОВАТЬ : расширение ответа джиттера и использование техники в ответе на этот вопрос для установки переменной среды с результатом запуска приложения командной строки:

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

В любом случае «хост» создается как переменная среды.

54 голосов
/ 16 июня 2009

Обычно я читаю вывод команды в переменные, используя команду 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 в командной строке.

11 голосов
/ 20 сентября 2010

Я использую переменную окружения COMPUTERNAME:

copy "C:\Program Files\Windows Resource Kits\Tools\" %SYSTEMROOT%\system32
srvcheck \\%COMPUTERNAME% > c:\shares.txt
echo %COMPUTERNAME%
5 голосов
/ 17 февраля 2010

Почему не так?:

set host=%COMPUTERNAME%
echo %host%
0 голосов
/ 23 января 2019
 set host=%COMPUTERNAME%
 echo %host%

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

0 голосов
/ 16 июня 2009

Просто создайте .bat файл со строкой

hostname

в нем. Вот и все. Windows также поддерживает команду hostname.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...