gpt4 book ai didi

powershell - 电源外壳;导入txt文件,对其进行格式化并将其导出到csv

转载 作者:行者123 更新时间:2023-12-03 00:35:23 25 4
gpt4 key购买 nike

我正在自动执行我在AD owner中创建的新员工帐户的过程。我已经创建了脚本来导入csv文件,并且一切正常。但是现在我试图通过将HR发送给我的电子邮件的内容复制到一个txt文件中,然后将powershell格式的每一行作为新列,然后将其导出到一个csv文件中来进一步自动化它,我可以在(最终将它们组合成1个脚本)
电子邮件格式如下所示。

Username: Test User
Title: Sales
Department: Sales
Manager: Manager's Name
Similar User: CoWorker's Name`

我只想将其复制并粘贴到记事本中并保存。然后让powershell导入它,像下面一样格式化它,然后导出它。
   Username   Title  Department  Manager         Similar User
Test User Sales Sales Manager's Name CoWorker's Name

我一直在尝试import-csv和get-content命令,但我没有运气将其格式化为所需的格式。有人有什么建议吗?

最佳答案

一种简单的方法是使用 ConvertFrom-StringData (该解决方案假定每一行仅包含一个:,并且输入文件名为user.txt; PSv3 +):

$userObj = [pscustomobject] ((Get-Content -Raw user.txt) -replace ':', '=' |
ConvertFrom-StringData)

由于 ConvertFrom-StringData需要 =作为键和其值之间的分隔符,因此 -replace用于将 :替换为 =
由于 ConvertFrom-StringData返回哈希表,因此使用强制转换的 [pscustomobject]将其转换为自定义对象。

信息一旦被解析为自定义对象 $userObj,就可以轻松地对其进行进一步处理:

作为数据进行进一步处理:

要将信息保存到CSV文件 out.csv:
$userObj | Export-Csv -NoTypeInformation -Encoding Utf8 out.csv

这样产生:
"Manager","Similar User","Department","Username","Title"
"Manager's Name","CoWorker's Name","Sales","Test User","Sales"

进一步处理以重新格式化以用于显示目的:

默认格式为您提供了这一功能(恰好与输入非常相似:

Manager      : Manager's Name
Similar User : CoWorker's Name
Department : Sales
Username : Test User
Title : Sales
$userObj | Format-Table产生:

Manager        Similar User    Department Username  Title
------- ------------ ---------- -------- -----
Manager's Name CoWorker's Name Sales Test User Sales

要获得所需的现场订单: $userObj | Format-Table 'Username', 'Title', 'Department', 'Manager', 'Similar User':

Username  Title Department Manager        Similar User   
-------- ----- ---------- ------- ------------
Test User Sales Sales Manager's Name CoWorker's Name

如果要删除分隔线( ---- ...)以及开头和结尾的空行: ((($userObj | Format-Table 'Username', 'Title', 'Department', 'Manager', 'Similar User') | Out-String -Stream) | ? { $_ -notmatch '^-|^$' })
Username  Title Department Manager        Similar User   
Test User Sales Sales Manager's Name CoWorker's Name

关于powershell - 电源外壳;导入txt文件,对其进行格式化并将其导出到csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42427674/

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