it-swarm.com.ru

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

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

Host=`hostname`
echo ${Host}

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

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

45
Edward Q. Bridges

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

53
Dave Webb

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

set Host=%COMPUTERNAME%
echo %Host%

EDIT: расширение ответа на дрожание и использование техники в ответе на на этот вопрос для установки переменной среды с результатом запуска приложения из командной строки:

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

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

54
sean e

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

copy "C:\Program Files\Windows Resource Kits\Tools\" %SYSTEMROOT%\system32
srvcheck \\%COMPUTERNAME% > c:\shares.txt
echo %COMPUTERNAME%
10
brakertech

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

set Host=%COMPUTERNAME%
echo %Host%
5
maniattico

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

hostname

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

1
jitter
 set Host=%COMPUTERNAME%
 echo %Host%

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

0
Ariful Huq