Velvet Star Monitor

Standout celebrity highlights with iconic style.

general

powershell CategoryInfo NotSpecified and newlines

Writer Sophia Terry

I have an app that prints text to stderr, so to save to a file, I do this:

.\NGPQUERY.exe -spoof -stages -diag 2> c:\foo.txt

None of the text is special characters, other than crlf at the end of lines.

In DOS, the output is fine. In powershell the output is almost fine.

The first line of text is this:

RTE Routings for BRI to LED - 00: 

I get this error message at the top of the output:

NGPQUERY.exe : RTE Routings for BRI to LED - 00: At line:1 char:15 + .\ngpquery.exe <<<< -spoof -stages -diag 2> e:\foo + CategoryInfo : NotSpecified: (RTE Routings for BRI to LED - 00: :String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError

Then throughout the output, line feeds are added at seemingly random locations. So my question is how do I get rid of the error and the random line feeds.

Also powershell outputs file that is twice as large as the dos file, I'm guessing its unicode. So I would like to know the best way get an ansi output too.

3

2 Answers

If you only need STDERR, this should be enough:

$oPsi = New-Object -TypeName System.Diagnostics.ProcessStartInfo
$oPsi.FileName = "NGPQUERY.exe"
$cArgs = @("-spoof", "-stages", "-diag")
$oPsi.Arguments = $cArgs
$oPsi.CreateNoWindow = $true
$oPsi.UseShellExecute = $false
$oPsi.RedirectStandardError = $true
$oProcess = New-Object -TypeName System.Diagnostics.Process
$oProcess.StartInfo = $oPsi
[Void]$oProcess.Start()
$sStdErr = $oProcess.StandardError.ReadToEnd()
[Void]$oProcess.WaitForExit()
$sStdErr | Out-File -Encoding "ASCII" -FilePath "C:\foo.txt"
3

This is an old question, but I got here because I had a similar problem and found the easiest solution to be to call cmd.exe and surround the command in quotes, to prevent Powershell from interpreting it. So in the above case that would be:

cmd.exe /c ".\NGPQUERY.exe -spoof -stages -diag 2> c:\foo.txt"

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy