gpt4 book ai didi

powershell - 在目录中搜索文件,如果找不到则向上迭代父目录

转载 作者:行者123 更新时间:2023-12-03 00:28:10 25 4
gpt4 key购买 nike

给定:

$path = c:\dir1\dir2\dir3\dir4\dir5

我想从最低的子目录 (dir5) 开始搜索 var.txt

如果 var.txt 存在,则执行某些操作,如果不存在,则在下一级(在本例中为 dir4)搜索 var.txt 并重复。

可能相关的链接:

How I could use test-path to check for var.txt

Recursion, maybe?

想法:

以某种方式使用 Split-Path,在迭代 -Parent 的循环中,并使用 test-path 每次迭代检查 var.txt


解决方案:

将下面的解决方案与操作结合起来,如果在最高目录没有找到则中断循环:

$file = ""
$path = ""
while($path -and !(Test-Path (Join-Path $path $file))){
if($path -eq ((Split-Path -Path $path -Qualifier)+"\")){
break
}
else {
$path = Split-Path $path -Parent
}
}
if($path -ne ((Split-Path -Path $path -Qualifier)+"\")){
#do something
}

最佳答案

试试这个(递归方法):

function GetPathIfFileExist($pathtosearch, $filename)
{
if($pathtosearch -eq "")
{
"file not founded"
}
elseif (Test-Path "$pathtosearch\$filename" )
{
$pathtosearch
}
else
{
GetPathIfFileExist (Split-Path $pathtosearch) $filename
}
}

GetPathIfFileExist "c:\dir1\dir2\dir3\dir4\dir5" "var.txt"

关于powershell - 在目录中搜索文件,如果找不到则向上迭代父目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45642517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com