
Seguí una guía para crear un archivo por lotes para poder retrasar el inicio de un programa durante unos segundos. (No quería utilizar una herramienta de terceros)
La cuestión es que no quiero ver esa ventana de cmd durante X segundos hasta que inicie ese programa. ¿Algunas ideas?
Aquí está el código que estoy usando dentro del archivo .bat:
@ECHO OFF
TIMEOUT /t 3 > nul
START "" "C:\program.exe"
Respuesta1
Este script visual básico hace 3 cosas.
~ Toma el directorio actual donde .VBS
está almacenado y toma un nombre de archivo.
~ Ejecuta el archivo proporcionado con privilegios de administrador. (no solicita UAC)
~ Ejecuta el archivo de forma silenciosa, sin el CMD que mencionas.
bElevate = False
if WScript.Arguments.Count > 0 Then If WScript.Arguments(WScript.Arguments.Count-1) <> "|" then bElevate = True
if bElevate Or WScript.Arguments.Count = 0 Then ElevateUAC
REM run the following script with admin privilages. start point.
Set fso = CreateObject("Scripting.FileSystemObject")
GetTheParent = fso.GetParentFolderName(Wscript.ScriptFullName)
Set WshShell = WScript.CreateObject ("WScript.Shell")
WshShell.Run GetTheParent & ("\CUSTOMNAMEOFBAT.bat")
WScript.Sleep 500
REM the above script will be run with admin privilages. end point.
Sub ElevateUAC
sParms = " |"
If WScript.Arguments.Count > 0 Then
For i = WScript.Arguments.Count-1 To 0 Step -1
sParms = " " & WScript.Arguments(i) & sParms
Next
End If
Set oShell = CreateObject("Shell.Application")
oShell.ShellExecute "wscript.exe", WScript.ScriptFullName & sParms, , "runas", 1
WScript.Quit
End Sub
Copie/pegue el siguiente código y guárdelo como .VBS
. Pon el . vbs
script en el mismo directorio que el suyo .bat
y cambie "CUSTOMNAMEOFBAT" (al final de la línea 11) por el nombre de su .bat
.