Comment capturer la sortie dans une variable plutôt qu'un fichier journal?

Cela écrirait la sortie dans un fichier journal:

& $Env:WinDirsystem32inetsrvappcmd.exe >test.log

Mais Que faire si je voulais garder la sortie dans une variable de chaîne pour l'utiliser dans le corps de l'email?

J'ai essayé cela sans aucune chance..

$test = ""
& $Env:WinDirsystem32inetsrvappcmd.exe >$test

Write-Host $test
26
demandé sur Peter Mortensen 2011-12-08 02:15:07

2 réponses

Vous devez faire:

$test = & $Env:WinDir\system32\inetsrv\appcmd.exe

Si vous voulais redirection erreur, ajoutez 2>&1 à la fin.

32
répondu manojlds 2011-12-07 22:32:05

Capturer la sortie d'un exécutable est aussi simple que

$cmdOutput = &"Application.exe" 2>&1

2>&1 - inclut le flux d'erreur dans la sortie

Le type de retour de L'exécutable dans PowerShell est un tableau de chaînes . En cas d'enregistrement de ces sorties,

Write-Host $cmdOutput

Affichera les chaînes du tableau dans le flux de sortie séparé par des espaces

Pour les imprimer sous forme de chaîne par ligne, choisissez

Write-Output $cmdOutput

Ou

$cmdOutput = &"Application.exe" | Out-String
Write-Host $cmdOutput
7
répondu Gunasekaran 2016-01-13 16:36:25