我在powershell中运行此命令行,并且保存输出的方式不同。
Import-csv $path\From.csv | Sort-Object -Property Dirpath | group-object -Property DirPath | Where {$_.Count -eq 1} | select-object @{Name='File'; Expression={$_.Group[0].File}}, Name | Export-Csv -Path $path\Output.csv -NoTypeInformation
From.csv包含大约100k或更多行。样品如下:
"文件"" DirPath"
" FS"" \ AR01"
" FS"" \ AR01 \ BLEND"
" FS"" \ AR01 \ BLEND \电气"
" FS"" \ AR01 \ BLEND \电气\ MOTORS"
" FS"" \ AR01 \ BLEND \电气\ MOTORS \ PM-60100"
" FS"" \ AR01 \ BLEND \电气\ MOTORS \ PM-60100 \手册"
" FD"" \ AR01 \ BLEND \电气\ MOTORS \ PM-60100 \手册"
" FR"" \ AR01 \ BLEND \电气\ MOTORS"
它应该过滤掉所有类似的Dirpath并留下那些没有重复的Dirpath。所以Output.csv应该是这样的。
"文件"" DirPath"
" FS"" \ AR01"
" FS"" \ AR01 \ BLEND"
" FS"" \ AR01 \ BLEND \电气"
" FS"" \ AR01 \ BLEND \电气\ MOTORS \ PM-60100"
代码工作正常,除了一件事。 在powershell版本5中。当一行达到180个字符时,下一个字符将被切换到下一行。 当在较低版本(Powershell版本3)上运行相同的代码时,限制较低。该行将在第80个字符后被切断,并将显示在下一行。
无论如何我都可以删除每行的字符数限制吗?
抱歉新手问题。版本问题只是我的预感。
答案 0 :(得分:2)
您可以通过修改控制台的缓冲区大小来更改此行为:
$pshost = get-host
$pswindow = $pshost.ui.rawui
$newsize = $pswindow.buffersize
$newsize.height = 3000
#the below value determines the character limit for one line
$newsize.width = 300
$pswindow.buffersize = $newsize
您可以从此参考链接获取有关此内容的更多详细信息: https://blogs.technet.microsoft.com/heyscriptingguy/2006/12/04/how-can-i-expand-the-width-of-the-windows-powershell-console/
答案 1 :(得分:1)