如何获取具有多个子目录的目录中的文件的路径

时间:2016-10-03 17:37:13

标签: powershell

如果文件位于子目录中,我如何以编程方式获取文件的路径?

示例:

<a>

我想抓取文件的目录并调用它,我知道如何用main_dir | sub_main_dir | another_sub | File 调用该文件,但我需要的是文件所在的目录,以便正确调用它: / p>

Invoke-Item

错误:

function search_for_file($directory, $fileName){
  if (search_dir($directory) -contains $fileName){
    say("Package found. Invoking package, follow the steps in the setup wizard.")
    invoke $fileName
  } Else {
    say("Did not find package, check spelling and try again")
  }
}

1 个答案:

答案 0 :(得分:1)

这会在$directory及其子目录中搜索它找到的第一个$fileName,然后再调用它。

Get-ChildItem -Path $directory -Recurse -Filter $fileName `
| Select-Object -First 1 -ExpandProperty FullName `
| Foreach-Object { Invoke-Item $_ }

对评论的回应

如果您只想获取文件的路径,那么您只需删除最后一个管道并将结果分配给变量:

$path = 
    Get-ChildItem -Path $directory -Recurse -Filter $fileName `
    | Select-Object -First 1 -ExpandProperty FullName