当我执行以下代码时,假设X:\是一个多级目录树,它会在第二遍中开始抛出奇怪的错误。
例如,假设X:\具有以下结构
X:\
--1stLevelDir
----2ndLevelDir
--Another1stLevelDir
function recurse{
param([System.IO.FileSystemInfo] $folder)
foreach ($dir in GCI $folder -Directory) {
Write-Output $dir.FullName
recurse $dir
}
}
recurse (get-item 'X:\')
该代码产生以下输出
X:\1stLevelDir
X:\1stLevelDir\2ndLevelDir
GCI : Cannot find path 'X:\2ndLevelDir' because it does not exist.
At foreach line
答案 0 :(得分:2)
recurse $dir.FullName
[IO.DirectoryInfo]对象扩展为短名称,该名称被视为相对路径 - 并在您所在的文件夹中查找。
编辑:或
function recurse{
param([System.IO.FileSystemInfo] $folder)
foreach ($dir in GCI $folder.FullName -Directory) {
Write-Output $dir.FullName
recurse $dir
}
}
recurse (get-item 'X:\')