我正在尝试在Powershell中创建一个脚本,用于查找重复文件以及获取目录上文件的函数,并返回带有数字的变量,而不是仅返回找到的文件。
我在返回之前和之后做了一个写主机,并且数字出现在第二次打印时。我不希望数字显示,我只想要文件的路径。
function getFiles($Directory){
$arrayFiles = [System.Collections.ArrayList]@()
Get-ChildItem $Directory -Name -Recurse -File | % {
$arrayFiles.Add("$Directory\$_")
}
return $arrayFiles
}
$files = getFiles($userInput)
$files
答案 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)