możesz pobrać nazwę hosta systemu z wiersza poleceń cmd lub powershell za pomocą hostname. nie powinieneś przechowywać go jako var, po prostu przywołaj go w miarę potrzeby.
Frank Thomas
@FrankThomas - Dlaczego zamiast tego nie podasz (być może krótkiego przykładu) odpowiedzi?
Nifle,
2
hostnamejest exe i chociaż wyświetla nazwę maszyny na konsoli, przechwycenie jej w pliku wsadowym nie będzie łatwe. Na szczęście istnieje już zestaw zmiennych środowiskowych i dostępny ( ComputerName) do użycia w typowym systemie Windows.
Vikas Gupta
Odpowiedzi:
10
Jak odpowiedział Vikas Gupta, możesz użyć wstępnie zdefiniowanej %COMPUTERNAME%zmiennej środowiskowej, która już zawiera nazwę komputera. Z praktycznego punktu widzenia powinno to być wszystko, czego potrzebujesz.
Jednak plik wsadowy może nadpisywać wartość, więc nie ma gwarancji, że wartość jest poprawna.
Możesz użyć WMIC, aby bezpośrednio odczytać nazwę komputera.
for /f "skip=1 delims=" %%A in (
'wmic computersystem get name'
) do for /f "delims=" %%B in ("%%A") do set "compName=%%A"
Dodatkowa pętla FOR eliminuje niepożądane znaki powrotu karetki, które są artefaktem FOR / F oddziałującym z wyjściem WMIC w Unicode. Tylko jedna pętla ma znak powrotu karetki na końcu każdej linii, co może powodować problemy.
czy istnieje powód, aby używać wmic zamiast po prostu dzwonić hostname?
eis
Myślałem o tym po napisaniu odpowiedzi. Z pewnością byłoby to prostsze. Nie jestem ekspertem w tych sprawach, ale na podstawie serverfault.com/q/260563/201695 uważam, że nazwa hosta i nazwa komputera nie są takie same. Ale myślę, że powinny być takie same w normalnych okolicznościach.
dbenham
26
W systemie Windows zazwyczaj zmienna środowiskowa jest już ustawiona i dostępna do użycia -
hostname
. nie powinieneś przechowywać go jako var, po prostu przywołaj go w miarę potrzeby.hostname
jest exe i chociaż wyświetla nazwę maszyny na konsoli, przechwycenie jej w pliku wsadowym nie będzie łatwe. Na szczęście istnieje już zestaw zmiennych środowiskowych i dostępny (ComputerName
) do użycia w typowym systemie Windows.Odpowiedzi:
Jak odpowiedział Vikas Gupta, możesz użyć wstępnie zdefiniowanej
%COMPUTERNAME%
zmiennej środowiskowej, która już zawiera nazwę komputera. Z praktycznego punktu widzenia powinno to być wszystko, czego potrzebujesz.Jednak plik wsadowy może nadpisywać wartość, więc nie ma gwarancji, że wartość jest poprawna.
Możesz użyć WMIC, aby bezpośrednio odczytać nazwę komputera.
Dodatkowa pętla FOR eliminuje niepożądane znaki powrotu karetki, które są artefaktem FOR / F oddziałującym z wyjściem WMIC w Unicode. Tylko jedna pętla ma znak powrotu karetki na końcu każdej linii, co może powodować problemy.
źródło
hostname
?W systemie Windows zazwyczaj zmienna środowiskowa jest już ustawiona i dostępna do użycia -
źródło
Get-Item Env:\ComputerName
$env:computername
(bez rozróżniania wielkości liter).W PowerShell możesz także użyć:
Tutaj wartość pochodzi z .Net, dzięki czemu unika się problemu korzystania
$Env:ComputerName
.źródło
$Env:ComputerName
?