È sempre possibile reindirizzare l'output un file EXE in un file in questo modo (anche da cmd.exe):
powershell c:\test.ps1 > c:\test.log
All'interno PowerShell, è anche possibile reindirizzare i comandi individuali di file, ma in questi casi, probabilmente si desidera aggiungere al file di log invece di sovrascrivere esempio:
$logFile = 'c:\temp\test.log'
"Executing script $($MyInvocation.MyCommand.Path)" > $logFile
foreach ($proc in Get-Process) {
$proc.Name >> $logFile
}
"Another log message here" >> $logFile
Come puoi vedere, eseguire il reindirizzamento all'interno dello script è un po 'un problema perché devi eseguire molti reindirizzamenti sul file. OTOH, se vuoi solo reindirizzare parte dell'output in un file, allora hai più controllo in questo modo. Un'altra opzione è quella di utilizzare Write-Host
per generare informazioni sulla console destinate a qualcuno che osserva i risultati dell'esecuzione dello script. Si noti che l'output Write-Host
non può essere reindirizzato al file.
Questo è un esempio eseguito da CMD.exe
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
fonte
2012-04-26 19:41:44
Quindi, se io sto avendo un argomento allo script PowerShell posso semplicemente do: powershell c: \ test.ps1 c: \ log.log> c: \ test.log dove log.log è l'argomento? – ssn
Sì, ma prova a utilizzare il parametro '-File', ad es. 'powershell -file c: \ test.ps1 c: \ log.log> c: \ test.log' –
se provo a usare il parametro file (o senza file) nel file batch ottengo la riga seguente che viene eseguita nel comando riga: powershell -file c: \ test.ps1 c: \ log.log 1> c: \ test.log Non capisco come quel "1" arrivi lì ..... E credo che l'intero testo dopo che il nome dello script è diventato il nome del file di input e quindi l'output non è quello atteso. E questo comportamento è lo stesso sia che io usi "-file" oppure no. – ssn