为什么当我返回变量apeer数字?

时间:2017-05-23 16:44:47

标签: powershell

我正在尝试在Powershell中创建一个脚本,用于查找重复文件以及获取目录上文件的函数,并返回带有数字的变量,而不是仅返回找到的文件。

我在返回之前和之后做了一个写主机,并且数字出现在第二次打印时。我不希望数字显示,我只想要文件的路径。

function getFiles($Directory){
$arrayFiles = [System.Collections.ArrayList]@()
Get-ChildItem $Directory -Name -Recurse -File | % {
        $arrayFiles.Add("$Directory\$_")
    }
    return $arrayFiles
}
$files = getFiles($userInput)
$files

1 个答案:

答案 0 :(得分:3)

ArrayList.Add() method会发出存储新添加项目的索引。您可以通过将Add()语句强制转换为[void]

来禁止它
function getFiles($Directory){
    $arrayFiles = [System.Collections.ArrayList]@()
    Get-ChildItem $Directory -Name -Recurse -File | % {
        [void]$arrayFiles.Add("$Directory\$_")
    }
    return $arrayFiles
}

话虽如此,整个功能似乎有点......不必要 - 你可以通过以下方式实现完全相同的事情:

$files = @(Get-ChildItem $Directory -Recurse -File |Select -Expand FullName)