【发布时间】:2017-08-12 06:25:16
【问题描述】:
鉴于:
$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
想法:
以某种方式使用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
}
【问题讨论】:
-
你有没有尝试过,如果有,你能告诉我们吗? SO 最适合用作解决特定问题的资源。
-
嗨,凯,道歉。目的是找到项目的根目录。通过脚本,本地根目录的所有子目录中的每个文件都将被复制到网络驱动器,从而保留文件夹结构。我想我会合并脚本将搜索以获取粘贴目标的 txt 文件。但是,由于项目文件夹位于客户端文件夹中,并且客户端可以有多个项目,因此我需要从右到左解析文件的路径。我今天开始使用 PowerShell,只有一个想法。我的想法在解决方案中得到了执行。
标签: powershell