【问题标题】:Powershell parse a line from a text file and save to CSVPowershell 从文本文件中解析一行并保存到 CSV
【发布时间】:2020-11-07 09:25:09
【问题描述】:

我对 PS 还很陌生,我确信需要一个简单的脚本。我尝试了几种不同的方法,但运气不佳。

我希望能够针对计算机名称列表(例如 c:\scripts\Computers.txt)运行脚本。从那里我希望它在计算机上搜索文本文件并解析工作站 ID 行的数据。在下面的示例中,它是 WorkStationID=skapp1。

一旦工作站 ID 被捕获,我想将它连同它来自的计算机名称一起保存在 CSV 文件中。

文本文件所在的远程文件路径是 c$\iSeries\ACSC.ws(是的,文件类型是 .ws,但可以以 txt 格式查看)

======文件开始====

[Profile]
ID=WS
Version=9
[CT]
trace=Y
[Telnet5250]
HostName=MVPI01
AssociatedPrinterStartMinimized=N
AssociatedPrinterClose=N
AssociatedPrinterTimeout=0
Security=CA400
SSLClientAuthentication=Y
CertSelection=AUTOSELECT
[Communication]
Link=telnet5250
Session=5250
[5250]
HostCodePage=037-U
WorkStationID=skapp1
PrinterType=IBM3812
[Keyboard]
CuaKeyboard=2
Language=United-States
IBMDefaultKeyboard=N
DefaultKeyboard=C:\iSeries\AS400.KMP
[Window]
ViewFlags=CE00
CaptionFormat=225 -
UserTitle=ACSC
RuleLinePos=0 0
[LastExitView]
A=3 2014 92 976 610 3 12 20 400 0 IBM3270— 37

[printers]
printer=\\cntps01\IT,winspool,192.168.14.26
CPI=10
LPI=6
FaceName=[BatangChe]
Raster=N
Drawer1Orient=Portrait
Drawer2Orient=Portrait
VTPrintArea=Scroll
VTPrintChar=ASCII
VTTerminator=None

======End of file====

有人可以帮我了解一下吗?

任何帮助将不胜感激!

【问题讨论】:

    标签: powershell csv parsing


    【解决方案1】:

    如果您的执行帐户可以访问所有系统上的c$ 共享,您可以执行以下操作:

    Get-Content C:\scripts\Computers.txt | Foreach-Object {
        $FilePath = '\\{0}\c$\iSeries\ACSC.ws' -f $_
        $WorkStationId = (Get-Content $FilePath) -match 'WorkStationID=' -replace 'WorkStationID='
        [pscustomobject]@{Computer = $_; WorkStationID = [string]$WorkStationId}
    } | Export-Csv output.csv -NoType
    

    【讨论】:

    • 完美运行并收集所需数据。现在让脚本保存到 CSV :)
    • 这很容易。添加 $objectlist=@();在循环中 $objectlist += [pscustomobject]@{Computer = $_; WorkStationID = $WorkStationId} 最终在循环之外,请参阅 Export-CSV cmdlet $objectlist | 手册导出-CSV
    • @skapp 我刚刚更新了要输出到output.csv的代码
    • @AdminOfThings 它现在写入 CSV 文件,但对于 WorkStationID 列,它为每一行列出 System.Object[]。 A 列中的计算机名称是正确的。如果我运行脚本减去 CSV 导出,则屏幕上的所有数据都是正确的。
    • @skapp 如果每个文件中只有一个工作站 ID,我的编辑应该会修复它。
    猜你喜欢
    • 2017-05-04
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 2021-06-22
    • 2018-02-16
    • 1970-01-01
    相关资源
    最近更新 更多