Je travaille sur un script d'installation MSSQL et je souhaite obtenir les résultats d'une installation silencieuse MSSQL. Dans mon script PowerShell, j'exécute cette commande:
$result = (start cmd "/c D:\SQL2008R2\SQL2008R2\setup.exe /CONFIGURATIONFILE=sqlconfig.ini && exit 0 || exit 1")
3 Réponses :
Voici comment vous le faites: si facile! P> p> Démarrer code> est en fait un alias
démarrage-processus code>, vous devez donc regarder c'est em> la documentation em> est beaucoup différent du
de CMD.exe Démarrer CODE>. Donc, vous pouvez le faire:
N'oubliez pas que cela vous écrira simplement au pipeline. Si vous souhaitez l'écho à STDOUT, vous utiliseriez la cmdlet Host Write-Host.
C'était un faux positif. Comme il s'avère, cela ne fonctionne que si vous supprimez le Démarrer la pièce CMD "/ C CODE>. Cela a fonctionné pour moi parce que j'essayais tous les deux dans ma session PowerShell. L'invite de commandement ne renvoie toujours rien. .
une alternative à Le code de sortie sera contenu dans la variable intégrée Ceci contiendra le code de sortie du programme afin que vous n'ayez pas à courir. avec cmd.exe, vous pouvez simplement faire: p> appliqué à votre programme de ligne de commande: p> ou juste: p> dans les deux cas démarrage-processus code> est l'opérateur d'appel plus syntaxiquement TERSE
& code>.
$ lastexitcode code> donc: p>
$ lastexitCode code> devrait être 0 pour réussir, non zéro sinon (si le programme externe a été écrit correctement). P > p>
Oui, j'ai vu que tu pouvais le faire aussi. Je voulais que le mien soit dans une nouvelle fenêtre, cependant. Donc j'avais besoin de start-processus code>
trop tard peut-être mais cela aide-t-il?
start /WAIT cmd.exe /C "YOUR-COMMAND-HERE & exit MY-ERROR-CODE" & if errorlevel 1 echo 'error occurred'
Ce n'est pas la façon dont
&& code> fonctionne et vous ne pouvez pas choisir
quitter 0 code> ou
Quitter 1 code> Une fois la configuration s'exécute. Vous devez tester
errorLEVELL code>, et c'est généralement effectué dans un fichier de commandes, ce qui pourrait alors quitter le code d'erreur approprié.
Eh bien, cela fonctionne en fait comme ça.
&& code> exécute le côté gauche et s'il est faux (la commande a échoué), il exécute le côté droit du
&& code>. Groupes de préséance de l'opérateur
(gauche && Milieu) || Droit code>. Maintenant que j'y pense, si
|| code> est une fonction conditionnelle ou unique jusqu'à une valeur réelle, alors j'aurais dû utiliser
& code> au lieu de
| | code>.