web-dev-qa-db-fra.com

Le moyen le plus sûr d’exécuter un fichier BAT à partir d’un script Powershell

Je ne peux pas obtenir de script PowerShell pour exécuter directement un fichier bat. Par exemple, cela fonctionne sur la ligne de commande:

.\\my-app\my-fle.bat

Lorsque j'ajoute cette commande à un script, elle génère:

The term '.\\my-app\my-file.bat' is not recognized as the 
name of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, 
verify that the path is correct and try again.

J'ai aussi essayé ce qui suit, avec le même résultat:

& .\\my-app\my-fle.bat
& ".\\my-app\my-fle.bat"
\my-app\my-fle.bat
& \my-app\my-fle.bat
& "\my-app\my-fle.bat"

Remarque: Il doit renvoyer le lastexitcode car je dois vérifier le succès du lot.

62
cmcginty
cmd.exe /c '\my-app\my-file.bat'
81
cmcginty

Pour exécuter le fichier .bat et avoir accès au dernier code de sortie, exécutez-le en tant que:

 & .\my-app\my-fle.bat
29
Rynant

Essayez ceci, votre source de points était un peu en retrait. Modifier, en ajoutant des bits lastexitcode pour OP.

$A = Start-Process -FilePath .\my-app\my-fle.bat -Wait -passthru;$a.ExitCode

ajoutez -WindowStyle Hidden pour le lot invisible.

25
Knuckle-Dragger