如果文件位于子目录中,我如何以编程方式获取文件的路径?
示例:
<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")
}
}
答案 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