我试图将目录中的一些pdf文件添加到csv文件中。
我使用下面的PowerShell脚本添加PDF,但问题是我需要拆分(但将每个文件的原始PDF路径保留原样)路径号进入调用。
有没有办法完成这个?
Get-ChildItem -Recurse "C:\Users\alon\Desktop\MYpdf\" |
ForEach-Object {
$_ | Add-Member -Name "Owner" -MemberType NoteProperty -Value (Get-Acl $_.FullName).Owner -PassThru
} |
Sort-Object FullName |
Select FullName, CreationTime, LastWriteTime, Length, Owner |
Export-Csv -Force -NoTypeInformation "C:\Users\alon\Desktop\MYpdf\directory.csv"
输出应该是这样的:
答案 0 :(得分:1)
您的意思是您想要将文件名中的数字添加为输出中的其他字段?我会拆分每个文件的基本名称,并根据该信息和文件元数据构建自定义对象:
Get-ChildItem ... |
ForEach-Object {
$numbers = $_.BaseName -split '_'
[PSCustomObject]@{
FullName = $_.FullName
Company = [int]$numbers[0]
Invoice = [int]$numbers[1]
Deal = [int]$numbers[2]
Customer = [int]$numbers[3]
Autonumber = [int]$numbers[4]
CreationTime = $_.CreationTime
LastWriteTime = $_.LastWriteTime
Length = $_.Length
Owner = (Get-Acl $_.FullName).Owner
} |
Sort-Object FullName |
Export-Csv ...
使用calculated properties也可以,但在这种情况下,构建新对象可以说是更简单的方法。
请注意,[PSCustomObject]
类型加速器需要PowerShell v3或更高版本。在旧版本中,您可以通过New-Object
创建对象,然后使用Select-Object
按定义的顺序获取属性。