Anda dapat mengambil hostname sistem dari baris perintah cmd atau PowerShell hostname. Anda tidak perlu menyimpannya sebagai var, cukup panggil inline sesuai kebutuhan.
Frank Thomas
@FrankThomas - Mengapa Anda tidak memberikan ini sebagai (mungkin dengan contoh singkat) sebagai gantinya?
Nifle
2
hostnameadalah exe, dan saat mengeluarkan nama mesin pada konsol, itu akan menjadi non-sepele untuk menangkapnya dalam file batch. Untungnya, sudah ada set variabel lingkungan, dan tersedia ( ComputerName) untuk digunakan pada sistem windows biasa.
Vikas Gupta
Jawaban:
10
Seperti yang dijawab Vikas Gupta, Anda dapat menggunakan %COMPUTERNAME%variabel lingkungan yang telah ditentukan sebelumnya yang sudah berisi nama komputer. Dari sudut pandang praktis, inilah yang Anda butuhkan.
Namun, dimungkinkan untuk file batch untuk menulis nilai secara berlebihan, sehingga tidak dijamin bahwa nilainya benar.
Anda dapat menggunakan WMIC untuk secara langsung membaca nama komputer.
for /f "skip=1 delims=" %%A in (
'wmic computersystem get name'
) do for /f "delims=" %%B in ("%%A") do set "compName=%%A"
Loop FOR ekstra menghilangkan karakter carriage return yang tidak diinginkan yang merupakan artefak dari FOR / F yang berinteraksi dengan output Unicode dari WMIC. Dengan hanya satu loop ada carriage return di akhir setiap baris yang dapat menyebabkan masalah.
apakah ada alasan untuk menggunakan wmic bukan hanya menelepon hostname?
eis
Saya memikirkan itu setelah saya menulis jawabannya. Tentunya akan lebih sederhana. Saya bukan ahli dalam masalah ini, tetapi berdasarkan serverfault.com/q/260563/201695 , saya pikir nama host dan nama komputer tidak dijamin sama. Tapi saya pikir mereka seharusnya sama dalam keadaan normal.
dbenham
26
Di Windows, biasanya variabel lingkungan sudah diatur dan tersedia untuk Anda gunakan -
hostname
. Anda tidak perlu menyimpannya sebagai var, cukup panggil inline sesuai kebutuhan.hostname
adalah exe, dan saat mengeluarkan nama mesin pada konsol, itu akan menjadi non-sepele untuk menangkapnya dalam file batch. Untungnya, sudah ada set variabel lingkungan, dan tersedia (ComputerName
) untuk digunakan pada sistem windows biasa.Jawaban:
Seperti yang dijawab Vikas Gupta, Anda dapat menggunakan
%COMPUTERNAME%
variabel lingkungan yang telah ditentukan sebelumnya yang sudah berisi nama komputer. Dari sudut pandang praktis, inilah yang Anda butuhkan.Namun, dimungkinkan untuk file batch untuk menulis nilai secara berlebihan, sehingga tidak dijamin bahwa nilainya benar.
Anda dapat menggunakan WMIC untuk secara langsung membaca nama komputer.
Loop FOR ekstra menghilangkan karakter carriage return yang tidak diinginkan yang merupakan artefak dari FOR / F yang berinteraksi dengan output Unicode dari WMIC. Dengan hanya satu loop ada carriage return di akhir setiap baris yang dapat menyebabkan masalah.
sumber
hostname
?Di Windows, biasanya variabel lingkungan sudah diatur dan tersedia untuk Anda gunakan -
sumber
Get-Item Env:\ComputerName
$env:computername
(case-insensitive juga).Di PowerShell Anda juga dapat menggunakan:
Di sini nilainya berasal dari .Net sehingga menghindari masalah penggunaan
$Env:ComputerName
.sumber
$Env:ComputerName
?