Powershell自动换行为59个字符

pu3pd22g  于 2022-12-13  发布在  Shell
关注(0)|答案(3)|浏览(159)

使用此命令,结果分为两行,第一行修剪为59个字符,第二行修剪为所有其他字符

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

它看起来像一些奇怪的文字换行,并且只出现在Windows PowerShell伊势中(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”(如果存在)时才起作用- Package 仍在原处。如果使用

$process.StartInfo.RedirectStandardError = $true;
vql8enpb

vql8enpb1#

尝试在Out-File上使用-Width参数,例如:

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

pb3skfrl2#

(我在不久的将来也遇到过类似的问题)如果输出被重定向,nuget.exe在macOS中将在80个字符处换行:https://github.com/NuGet/Home/issues/10198
修复已合并到5.9 release中。

toe95027

toe950273#

Set-content不会添加额外的呈现。不需要Invoke-expression。

nuget list Json.NET -source https://www.nuget.org/api/v2/ | set-content C:\test.txt

相关问题