Get-ChildItem "$Folder" *.xlsx -Recurse | ?{-not ($_.PSIsContainer -or (Test-Path "I:\TEMP_Dir_SSN\$_"))} | copy-Item -Destination "I:TEMP_Dir_SSN" | out-null
Get-ChildItem "$Folder" *.xlsx -Recurse | %{
$test = Resolve-Path $_.FullName
$holdArray += $test.path
}
$holdArray | out-file "I:\TEMP_Dir_SSN\fullPath.txt" -append
输出:
I:\1992.xlsxI:\projects\confluence\projects\documents\XXXX_ComplianceRegulations.xlsxI:\projects\confluence\projects\documents\XXXX_vendorCloudStandardsPoliciesRegs.xlsx
我想要它:
I:\1992.xlsx
I:\projects\confluence\projects\documents\XXXX_ComplianceRegulations.xlsx
I:\projects\confluence\projects\documents\XXXX_vendorCloudStandardsPoliciesRegs.xlsx
我不确定这里出了什么问题。它应该将它添加到下一行,而不是将其附加到字符串的末尾。
答案 0 :(得分:1)
将$holdArray += $test.path
更改为[array]$holdArray += $test.path
你还没有告诉PowerShell这是一个数组,因此它将它视为一个字符串。
答案 1 :(得分:1)
您正在将“数组”展平为空格分隔的字符串,因为您最初没有声明$holdArray
。跳过数组“构建”逻辑并使用管道获得所需的结果。
Get-ChildItem $Folder *.xlsx -Recurse |
Resolve-Path | Convert-Path |
Add-Content "I:\TEMP_Dir_SSN\fullPath.txt"
Add-Content
默认添加。