it-swarm.com.de

Wie speichert man den Hostnamen in einer Variablen in einer .bat-Datei?

Ich möchte diese /bin/sh-Syntax in ein weitgehend kompatibles Windows-Batch-Skript konvertieren:

Host=`hostname`
echo ${Host}

Wie können Sie dies tun, damit es auf jedem Windows Vista-, Windows XP- und Windows 2000-Computer funktioniert?

Zur Klarstellung: Ich möchte dann im Programm weitergehen und den Hostnamen verwenden, wie er in der Variablen Host gespeichert ist. Mit anderen Worten, das größere Ziel des Programms besteht nicht darin, den Hostnamen einfach zu wiederholen.

45

Normalerweise lese ich die Befehlsausgabe mit Hilfe des FOR-Befehls in Variablen, da dies das Erstellen temporärer Dateien erspart. Zum Beispiel:

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

Beachten Sie, dass die obige Anweisung in der Befehlszeile, aber nicht in einer Batchdatei funktioniert. Um es in einer Batchdatei zu verwenden, entgehen Sie dem % in der FOR-Anweisung, indem Sie sie zweimal eingeben:

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

Mit FOR können Sie noch viel mehr tun. Für weitere Informationen geben Sie einfach HELP FOR an der Eingabeaufforderung ein.

53
Dave Webb

hmm - sowas?

set Host=%COMPUTERNAME%
echo %Host%

EDIT: Erweiterung der Antwort von Jitter und Verwendung einer Technik in einer Antwort auf diese Frage , um eine Umgebungsvariable mit dem Ergebnis der Ausführung einer Befehlszeilen-App festzulegen:

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

In beiden Fällen wird 'Host' als Umgebungsvariable erstellt.

54
sean e

Ich verwende die Umgebungsvariable COMPUTERNAME:

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

Warum nicht so ?:

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

Erstellen Sie einfach eine .bat-Datei mit der Zeile

hostname

drin. Das ist es. Windows unterstützt auch den Befehl Hostname.

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

Das reicht. keine extra Loops großer Codierung nötig.

0
Ariful Huq