gpt4 book ai didi

powershell - Powershell出文件csv分隔

转载 作者:行者123 更新时间:2023-12-03 01:15:30 27 4
gpt4 key购买 nike

我有一个使用robocopy列出文件的powershell命令。我正在尝试输出到csv,但它没有按需分隔列。我得到应该在5的两列。out-file csv是否有定界符参数?

这是当前代码:

robocopy .\Documents\ NULL /L /S /V /E /BYTES /FP /NC /NDL /XJ /TS /R:1 /W:2 | Out-File -Append -FilePath "c:\beehive_20150608.csv" -Encoding ASCII

我尝试了 export-csv,它只带回了路径的字符串长度。

有什么建议么?

最佳答案

我假设您需要列出某个文件夹下的所有文件。您可以为此使用Get-ChildItem -Recurse而不是robocopy,仅过滤具有Where-Object的文件,然后仅使用Select-Object选择所需的属性:

Get-ChildItem .\Documents -Recurse | Where-Object {!$_.PsIsContainer}| Select-Object -property LastWriteTime,Length,FullName | Export-Csv aaa.csv

如果您需要使用 robocopy,则可以尝试解析其输出:
robocopy .\Documents\ NULL /L /S /V /E /BYTES /FP /NC /NDL /XJ /TS /R:1 /W:2 /njh /njs | Where-Object {$_ -match '^\s*([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+(.*?)\s*$'} | ForEach-Object { new-object PSObject -property @{Length=$matches[1];Date=$matches[2];Time=$matches[3];Name=$matches[4]}} | Export-Csv aaa.csv

这很丑,但是应该做您需要的。我在命令行中添加了 /njh/njs参数以抑制 robocopy的页眉和页脚, Where-Object删除不匹配的(空)行,并且 ForEach-Object使用 $Matches运算符创建的 -match使用 Where-Object创建具有命名属性的对象。

关于powershell - Powershell出文件csv分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30741511/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com