JBurace
JBurace

Reputation: 5623

How to redirect output?

I am attempting to redirect output of a Powershell script to a txt file.

In the Powershell window, I try:

.\script.ps1 > list.txt

But it does not help, all output still gets printed to the window.

I then tried:

.\script.ps1 >& list.txt

And got this error:

Missing file specification after redirection operator.
At line:1 char:21
+ .\script.ps1 > <<<< & list.txt
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingFileSpecification

Upvotes: 2

Views: 14180

Answers (3)

Guvante
Guvante

Reputation: 19203

You don't need the & after the >. It is only used to execute something.

.\script.ps1 > list.txt

If script.ps1 is outputting using Write-Host or [Console]::WriteLine you will need to update it.

Here is an example of updating a Write-Host script to be outputable.

Upvotes: 0

Andy Arismendi
Andy Arismendi

Reputation: 52577

If you are writing output in script.ps1 using Write-Host (or [Console]::WriteLine) you will either need to change those to Write-Output or do this:

powershell.exe -File test.ps1 > out.txt

By the way > is syntactic sugar for Out-File, they are the same thing.

Upvotes: 3

mjolinor
mjolinor

Reputation: 68243

If the output you're wanting to capture is being written to the console using Write-Host, you need to change that to Write-Output.

Upvotes: 0

Related Questions