运行import-csv powershell脚本时对CSV的字符限制

时间:2017-05-30 05:58:40

标签: powershell csv

我在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个字符后被切断,并将显示在下一行。

无论如何我都可以删除每行的字符数限制吗?

抱歉新手问题。版本问题只是我的预感。

2 个答案:

答案 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)

除了Abhijith pk的程序化解决方案之外,您还可以通过右键单击PowerShell图标并转到属性来执行此操作。每次使用此快捷方式启动PowerShell控制台时都会应用此选项。

Right click > Properties

当您描述的是宽度屏幕缓冲区大小限制时,在布局选项卡下。如果您不想要水平滚动条,请调整窗口大小以使其大小或更大。

Go to layout tab