我写了一个小函数来扫描每个文件夹
$PSModulePath
查看不同路径中是否存在重复的文件夹名(因为我发现这个问题在我的PowerShell环境中经常发生!)。我使用简单的逻辑,我想知道一些PowerShell专家是否有更紧凑/更快/更有效的方法来实现这样的扫描(我经常发现那些在PowerShell方面做得更好的人似乎有2行解决方案来解决需要15行的问题!:-) )?
并在其中创建子文件夹名称数组,然后查看
路径
$PSModulePath模块
function Find-ModuleDuplicates {
$hits = ""
$ModPaths = $env:PSModulePath -Split ";" -replace "\\+$", "" | sort
foreach ($i in $ModPaths) {
foreach ($j in $ModPaths) {
if ($j -notlike "*$i*") {
$arr_i = (gci $i -Dir).Name
$arr_j = (gci $j -Dir).Name
foreach ($x in $arr_j) {
if ($arr_i -contains $x) {
$hits += "Module '$x' in '$i' has a duplicate`n"
}
}
}
}
}
if ($hits -ne "") { echo "" ; echo $hits }
else { "`nNo duplicate Module folders were found`n" }
}