Mi rendo conto che a questa domanda sia già stata data una risposta con una risoluzione perfettamente nativa di Windows e quindi dovrebbe essere la più compatibile, e sono completamente d'accordo.
Volevo anche dire che non sono d'accordo con il commento di @ splattne (ma non con la sua risposta effettiva) - che la risoluzione nell'altro thread di riferimento merita il merito. Questa risposta implica l'esecuzione dello script come un altro utente (SYSTEM), che è praticamente l'equivalente di dare accesso allo script root. Fallirà anche per lavori come ROBOCOPY
(come indicato da John Rennie), che richiedono l'accesso alla rete.
Non ho mai provato CMDOW
prima, ma vorrei offrire un'altra risoluzione simile, che [sebbene non sia installata in modo nativo su Windows] è ancora altamente portatile per la maggior parte delle versioni, ed è disponibile in entrambe le versioni a 32 e 64 bit, e cioè NirCmd .
NirCmd è uno strumento molto potente che ha una miriade di opzioni, la più utile delle quali trovo personalmente la capacità di avviare finestre di comandi nascoste semplicemente eseguendo quanto segue:
c:\path\to\nircmd.exe exec hide "c:\path\to\mybat.bat"
Dalla exec
sezione della Guida ai comandi di NirCmd :
exec [show/hide/min/max] [application + command-line]
Esegue un'applicazione e, facoltativamente, specifica uno o più parametri della riga di comando per l'applicazione eseguita. Il parametro [show / hide / min / max] consente di specificare se l'applicazione in esecuzione sarà visibile o meno. Se si specifica 'nascondi', l'applicazione in esecuzione non sarà visibile all'utente. Se si specifica 'max', la finestra dell'applicazione in esecuzione verrà ingrandita. Se si specifica 'min', la finestra dell'applicazione in esecuzione verrà ridotta a icona.
EDIT:
stavo cercando di eseguire un ROBOCOPY
lavoro e ho provato il metodo in questa risposta, e non ha funzionato, anche dopo aver modificato i privilegi di accesso alla rete. Ho provato a fare doppio clic sullo script e non sono riuscito a farlo funzionare, ma ho potuto farlo funzionare solo con un prompt dei comandi elevato. Ho creato un collegamento al file batch e l'ho eseguito come amministratore e sono stato in grado di farlo eseguire facendo doppio clic su di esso, ma il metodo che ho finito è stato quello di eseguirlo nascosto come SISTEMA (lo so, lo so) - ma funziona ROBOCOPY
, per quello che vale, purché il file batch disponga delle autorizzazioni corrette.
EDIT 2:
Per qualche motivo, non funzionerebbe come SYSTEM (probabilmente la cosa di accesso alla rete a cui si fa riferimento in precedenza) - L'ho notato solo dopo aver effettivamente eseguito ROBOCOPY
senza il flag / L, che è fondamentalmente solo una simulazione e [apparentemente] non funziona effettivamente connettersi al sistema remoto, ma quando eseguo il file batch con i privilegi più alti e seleziono la casella nascosta, e posso ancora eseguirlo come l'utente che ha effettuato l'accesso in background senza che sia visualizzata una finestra di comando, per tutto ciò che vale per chiunque .