Me gusta tener una línea típica de "uso:" en mis scripts cmd.exe
— si falta un parámetro, al usuario se le da un simple recordatorio de cómo se usará el script.Determinar si la secuencia de comandos por lotes se ha iniciado/ejecutado desde la línea de comandos (cmd) -o bien - ¿Pausar o no pausar?
El problema es que no puedo predecir con seguridad si el usuario potencial usaría GUI o CLI. Si alguien que usa la GUI hace doble clic en esta secuencia de comandos en la ventana del Explorador, no tendrán la oportunidad de leer nada, a menos que yo pause
la ventana. Si usan CLI, pause
les molestará.
Así que estoy buscando una manera de detectarlo.
@echo off
if _%1_==__ (
echo usage: %nx0: filename
rem now pause or not to pause?
)
¿Hay una buena solución para esto?
lo suficientemente extraño: si abre nueva sesión en cmd.exe y llamas a esto, la primera vez pausa: parece que 'encontrar' no aumenta'% errorlevel% 'en el primer intento. El siguiente y otros intentos están bien. –
La subida de '% errorlevel%' también falla si otros comandos (par típico de 'set's y' cd' en mi caso) están presentes * antes * de esta construcción. –
Además, esto no funcionará en una subrutina llamada usando 'call: somesub'. En ese caso, '% cmdcmdline%' contendrá solo la etiqueta de esa subrutina: '% cmdcmdline%'. –