数组输出到多行

时间:2017-06-21 13:02:52

标签: powershell

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

我不确定这里出了什么问题。它应该将它添加到下一行,而不是将其附加到字符串的末尾。

2 个答案:

答案 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默认添加。