puede recuperar el nombre de host de un sistema desde la línea de comando cmd o powershell con hostname. no debería necesitar almacenarlo como var, simplemente invocarlo en línea según lo necesite.
Frank Thomas
@FrankThomas: ¿por qué no proporciona esto como respuesta (quizás con un breve ejemplo)?
Nifle
2
hostnamees un exe, y aunque muestra el nombre de la máquina en la consola, no será trivial capturarlo en un archivo por lotes. Afortunadamente, ya existe un conjunto de variables de entorno y está disponible ( ComputerName) para usar en el sistema típico de Windows.
Vikas Gupta
Respuestas:
10
Como Vikas Gupta ha respondido, puede usar la %COMPUTERNAME%variable de entorno predefinida que ya contiene el nombre de la computadora. Desde un punto de vista práctico, esto debería ser todo lo que necesita.
Sin embargo, es posible que un archivo por lotes sobrescriba el valor, por lo que no se garantiza que el valor sea correcto.
Puede usar WMIC para leer directamente el nombre de la computadora.
for /f "skip=1 delims=" %%A in (
'wmic computersystem get name'
) do for /f "delims=" %%B in ("%%A") do set "compName=%%A"
El bucle FOR adicional elimina los caracteres de retorno de carro no deseados que son un artefacto de FOR / F que interactúa con la salida Unicode de WMIC. Con solo un bucle, hay un retorno de carro al final de cada línea que puede causar problemas.
¿Hay alguna razón para usar wmic en lugar de solo llamar hostname?
Eis
Pensé en eso después de escribir la respuesta. Ciertamente sería más simple. No soy un experto en estos temas, pero según serverfault.com/q/260563/201695 , creo que no se garantiza que el nombre de host y el nombre de la computadora sean los mismos. Pero creo que se supone que son iguales en circunstancias normales.
dbenham
26
En Windows, normalmente una variable de entorno ya está configurada y disponible para su uso:
hostname
. no debería necesitar almacenarlo como var, simplemente invocarlo en línea según lo necesite.hostname
es un exe, y aunque muestra el nombre de la máquina en la consola, no será trivial capturarlo en un archivo por lotes. Afortunadamente, ya existe un conjunto de variables de entorno y está disponible (ComputerName
) para usar en el sistema típico de Windows.Respuestas:
Como Vikas Gupta ha respondido, puede usar la
%COMPUTERNAME%
variable de entorno predefinida que ya contiene el nombre de la computadora. Desde un punto de vista práctico, esto debería ser todo lo que necesita.Sin embargo, es posible que un archivo por lotes sobrescriba el valor, por lo que no se garantiza que el valor sea correcto.
Puede usar WMIC para leer directamente el nombre de la computadora.
El bucle FOR adicional elimina los caracteres de retorno de carro no deseados que son un artefacto de FOR / F que interactúa con la salida Unicode de WMIC. Con solo un bucle, hay un retorno de carro al final de cada línea que puede causar problemas.
fuente
hostname
?En Windows, normalmente una variable de entorno ya está configurada y disponible para su uso:
fuente
Get-Item Env:\ComputerName
$env:computername
(sin distinción entre mayúsculas y minúsculas).En PowerShell también puedes usar:
Aquí el valor proviene de .Net, por lo que evita el problema del uso
$Env:ComputerName
.fuente
$Env:ComputerName
?