windows - off - lenguaje batch
¿Cómo almacenar el nombre de host en una variable en un archivo.bat? (5)
Me gustaría convertir esta sintaxis /bin/sh
en una secuencia de comandos por lotes de Windows ampliamente compatible:
host=`hostname`
echo ${host}
¿Cómo hacer esto para que funcione en cualquier máquina con Windows Vista, Windows XP y Windows 2000?
Para aclarar: me gustaría continuar en el programa y usar el nombre de host como está almacenado en el host
variable. En otras palabras, el objetivo más amplio del programa no es simplemente repetir el nombre de host.
¿Por qué no?
set host=%COMPUTERNAME%
echo %host%
Estoy usando la variable de entorno COMPUTERNAME
:
copy "C:/Program Files/Windows Resource Kits/Tools/" %SYSTEMROOT%/system32
srvcheck //%COMPUTERNAME% > c:/shares.txt
echo %COMPUTERNAME%
Normalmente leo la salida del comando en variables usando el comando FOR
ya que ahorra tener que crear archivos temporales. Por ejemplo:
FOR /F "usebackq" %i IN (`hostname`) DO SET MYVAR=%i
Tenga en cuenta que la declaración anterior funcionará en la línea de comandos pero no en un archivo por lotes. Para usarlo en un archivo por lotes, escape el %
en la declaración FORT poniendo dos veces:
FOR /F "usebackq" %%i IN (`hostname`) DO SET MYVAR=%%i
ECHO %MYVAR%
Hay mucho más que puedes hacer con FOR
. Para obtener más información, solo escriba HELP FOR
en el símbolo del sistema.
Solo crea un archivo .bat con la línea
hostname
en eso. Eso es. Windows también es compatible con el comando de nombre de host.
hmm - algo como esto?
set host=%COMPUTERNAME%
echo %host%
EDITAR : expandir la respuesta de jitter y usar una técnica en una respuesta a esta pregunta para establecer una variable de entorno con el resultado de ejecutar una aplicación de línea de comando:
@echo off
hostname.exe > __t.tmp
set /p host=<__t.tmp
del __t.tmp
echo %host%
En cualquier caso, ''host'' se crea como una variable de entorno.