Me doy cuenta de que esta pregunta ya ha sido respondida con una resolución perfectamente buena que es nativa de Windows y, por lo tanto, debería ser la más compatible, y estoy completamente de acuerdo.
También quería decir que no estoy de acuerdo con el comentario de @ splattne (pero no con su respuesta real), que la resolución en el otro hilo de referencia merece el crédito. Esa respuesta implica ejecutar el script como un usuario diferente (SYSTEM), que es más o menos el equivalente a darle acceso al script root. También fallará para trabajos como ROBOCOPY
(como lo menciona John Rennie), que requieren acceso a la red.
Nunca lo he intentado CMDOW
antes, pero me gustaría ofrecer otra resolución similar, que [aunque no está instalada de forma nativa en Windows] sigue siendo altamente portátil para la mayoría de las versiones, y viene en versiones de 32 y 64 bits, y eso es NirCmd .
NirCmd es una herramienta muy poderosa que tiene miles de opciones, la más útil de las cuales, personalmente, considero que es su capacidad para iniciar ventanas de comandos ocultas simplemente ejecutando lo siguiente:
c:\path\to\nircmd.exe exec hide "c:\path\to\mybat.bat"
Desde la exec
sección de la referencia NirCmd comando :
exec [show/hide/min/max] [application + command-line]
Ejecuta una aplicación y, opcionalmente, especifica uno o más parámetros de línea de comandos para la aplicación ejecutada. El parámetro [show / hide / min / max] especifica si la aplicación en ejecución será visible o no. Si se especifica 'ocultar', la aplicación en ejecución no será visible para el usuario. Si se especifica 'max', la ventana de la aplicación en ejecución se maximizará. Si se especifica 'min', la ventana de la aplicación en ejecución se minimizará.
EDITAR:
estaba tratando de ejecutar un ROBOCOPY
trabajo y probé el método en esta respuesta, y no funcionó, incluso después de editar los privilegios de acceso a la red. Intenté hacer doble clic en el script y no pude hacerlo funcionar, pero solo pude ejecutarlo bajo un símbolo del sistema elevado. Creé un acceso directo al archivo por lotes y lo ejecuté como Administrador y pude ejecutarlo haciendo doble clic en él, pero el método con el que terminé fue ejecutarlo oculto como SYSTEM (Lo sé, lo sé) - pero funciona ROBOCOPY
, por lo que vale, siempre que el archivo por lotes tenga los permisos correctos.
EDITAR 2:
por alguna razón, no funcionaría como SYSTEM (probablemente el elemento de acceso a la red al que se hizo referencia anteriormente): solo noté esto después de ejecutar realmente ROBOCOPY
sin el indicador / L, que es básicamente una simulación y [aparentemente] no en realidad me conecto al sistema remoto, pero cuando ejecuto el archivo por lotes con los privilegios más altos y verifico la casilla oculta, todavía puedo ejecutarlo como el usuario conectado en segundo plano sin que se muestre una ventana de comandos, para lo que sea que valga para cualquiera .