2014-01-08 3 views
0

Используя этот результат, команды делятся на две строке, первым обрежется на 59 символов, второй - все остальных символыPowershell слово обертывания в 59 символах

$command ='nuget.exe list "Json.NET" -source "https://www.nuget.org/api/v2/"' 
(Invoke-Expression "$command") | out-file C:\test.txt 

Похоже, какое-то странное слово обертывания и появляется только в Windows PowerShell ISE (Powershell.exe работает отлично)

Увеличение размера буфера не работает для меня

$host.UI.RawUI.BufferSize = new-object System.Management.Automation.Host.Size(512,50) 

это работает

start-process $nugetExe $command -wait -WindowStyle Hidden -RedirectStandardOutput C:\test.txt -RedirectStandardError C:\error.txt 

, но это работает только, если исключить «RedirectStandardError», если она существует - упаковка еще на месте Тот же вопрос, если я использую

$process.StartInfo.RedirectStandardError = $true; 
+0

Что входит в переменную '$ command'? Является ли первая строка всегда урезанной до 59 символов (например, установите '$ command = '" 0 "* 200'')? – Rynant

+0

он получает команду списка пакетов nuget, например: .nuget.exe list "Json.NET" -source "https://nuget.org/api/v2/", и нет, 59 символов, только если имя пакета слишком длинное – Sergey

+0

Это похоже, что nuget отвечает за упаковку, и она обтекает ширину окна. Вам нужно будет установить $ Host.UI.RawUI.WindowSize'. Я не использую nuget, поэтому я не уверен, есть ли другой вариант. – Rynant

ответ

0

Попробуйте использовать параметр -Width на Out-File например:

nuget.exe list "Json.NET" -source "https://www.nuget.org/api/v2/" | 
    Out-File C:\test.txt -Width 256 
+0

К сожалению, это не помогло – Sergey

+0

Возможно, это самородок, который затем обертывает текст. Попробуйте выполнить ту же команду из cmd.exe и посмотрите, не обертывается ли она на уровне 59 на консоли. –

+0

powershell.exe и cmd.exe работают правильно, если я вызываю nuget.exe из них – Sergey

 Смежные вопросы

  • Нет связанных вопросов^_^