Sie immer der Ausgabe eine exe in eine Datei wie so umleiten (auch von cmd.exe):
powershell c:\test.ps1 > c:\test.log
Innerhalb Powershell können Sie auch einzelne Befehle umleiten Datei aber in diesen Fällen möchten Sie wahrscheinlich in die Protokolldatei anhängen, anstatt überschreiben zB:
$logFile = 'c:\temp\test.log'
"Executing script $($MyInvocation.MyCommand.Path)" > $logFile
foreach ($proc in Get-Process) {
$proc.Name >> $logFile
}
"Another log message here" >> $logFile
Wie Sie sehen können, ist die Umleitung innerhalb des Skripts ein wenig mühsam, da Sie viele Weiterleitungen zur Datei vornehmen müssen. OTOH, wenn Sie nur einen Teil der Ausgabe in eine Datei umleiten möchten, haben Sie auf diese Weise mehr Kontrolle. Eine andere Option ist die Verwendung von Write-Host
, um Informationen an die Konsole auszugeben, die für jemanden gedacht sind, der die Ergebnisse der Skriptausführung beobachtet. Beachten Sie, dass die Ausgabe Write-Host
nicht in Datei umgeleitet werden kann.
Dies ist ein Beispiel von cmd.exe ausgeführt
C:\Temp>type test.ps1
$OFS = ', '
"Output from $($MyInvocation.MyCommand.Path). Args are: $args"
C:\Temp>powershell.exe -file test.ps1 1 2 a b > test.log
C:\Temp>type test.log
Setting environment for using Microsoft Visual Studio 2008 Beta2 x64 tools.
Output from C:\Temp\test.ps1. Args are: 1, 2, a, b
Also, wenn ich an den Powershell-Skript ein Argument habe, kann ich einfach nur do: Powershell c: \ test.ps1 c: \ Protokoll.log> c: \ test.log wo log.log ist das Argument? – ssn
Ja, aber versuchen Sie es mit dem '-File' Parameter, z. 'powershell -datei c: \ test.ps1 c: \ log.log> c: \ test.log' –
Wenn ich versuche, Dateiparameter (oder ohne Datei) in der Batch-Datei zu verwenden, erhalte ich die folgende Zeile, die im Befehl ausgeführt wird Zeile: Powershell-Datei c: \ test.ps1 c: \ log.log 1> c: \ test.log Ich verstehe nicht, wie das "1" kommt da ..... Und ich denke, der ganze Text Nachdem der Name des Skripts als Name der Eingabedatei genommen wurde, entspricht die Ausgabe nicht den Erwartungen. Und dieses Verhalten ist das gleiche, ob ich "Datei" verwende oder nicht. – ssn