Je me rends compte que cette question a déjà été résolue avec une résolution parfaitement bonne, native de Windows et donc devrait être la plus compatible, et je suis tout à fait d’accord.
Je voulais également dire que je ne suis pas d'accord avec le commentaire de @ splattne (mais pas sa réponse réelle), à savoir que la résolution de l'autre fil de discussion cité mérite le crédit. Cette réponse implique d'exécuter le script en tant qu'utilisateur différent (SYSTEM), ce qui revient à peu près à donner au script un accès racine. Il échouera également pour des travaux tels que ROBOCOPY
(comme référencé par John Rennie), qui nécessitent un accès réseau.
Je n'ai jamais essayé CMDOW
auparavant, mais j'aimerais proposer une autre résolution similaire, qui [bien que n'étant pas installée en mode natif sous Windows] reste très portable pour la plupart des versions, et existe en versions 32 et 64 bits, à savoir NirCmd .
NirCmd est un outil très puissant qui offre une myriade d'options, dont la plus utile, que je trouve personnellement, est sa capacité à lancer des fenêtres de commande cachées en exécutant simplement ce qui suit:
c:\path\to\nircmd.exe exec hide "c:\path\to\mybat.bat"
Dans la exec
section Référence de la commande NirCmd :
exec [show/hide/min/max] [application + command-line]
Exécute une application et spécifie éventuellement un ou plusieurs paramètres de ligne de commande pour l'application exécutée. Le paramètre [show / hide / min / max] spécifie si l'application en cours d'exécution sera visible ou non. Si 'masquer' est spécifié, l'application en cours d'exécution ne sera pas visible pour l'utilisateur. Si 'max' est spécifié, la fenêtre de l'application en cours d'exécution sera maximisée. Si 'min' est spécifié, la fenêtre de l'application en cours d'exécution sera réduite.
EDIT:
J'essayais d'exécuter un ROBOCOPY
travail et d'essayer la méthode dans cette réponse, et cela n'a pas fonctionné, même après avoir modifié les privilèges d'accès au réseau. J'ai essayé de double-cliquer sur le script et je ne pouvais pas le faire fonctionner, mais je ne pouvais le faire fonctionner que sous une invite de commande élevée. J'ai créé un raccourci vers le fichier de commandes et je l'ai exécuté en tant qu'administrateur. J'ai pu le faire exécuter en double-cliquant dessus, mais la méthode utilisée a été de l'exécuter caché en tant que SYSTEM (je sais, je sais) - mais cela fonctionne ROBOCOPY
pour ce que ça vaut, tant que le fichier batch a les permissions appropriées.
EDIT 2:
pour une raison quelconque, cela ne fonctionnerait pas en tant que SYSTEM (probablement l’accès réseau mentionné plus haut) - je ne l’ai remarqué qu'après avoir exécuté ROBOCOPY
le drapeau / L, qui est essentiellement une simulation et qui [apparemment] ne fonctionne pas Je me connecte effectivement au système distant, mais lorsque je lance le fichier de commandes avec les privilèges les plus élevés et que je coche la case cachée, je peux toujours l'exécuter en tant qu'utilisateur connecté en arrière-plan sans afficher de fenêtre de commande, quelle qu'en soit la valeur pour quiconque .