搜索文件并将路径指定为变量作为字符串

时间:2017-11-07 23:32:42

标签: powershell

我已经看到使用Get-ChildItem搜索文件的响应但到目前为止我还没有看到将对象结果转换为我可以使用的字符串的方法。

总体问题是有一个exe在多个pc的本地appdata中一致地命名,但该路径在父文件夹中使用了一个哈希。我希望能够通过powershell运行该文件,但由于我无法知道父文件夹名称是什么,我必须进行搜索,返回路径名,然后将该文件作为该路径的一部分运行。

2 个答案:

答案 0 :(得分:3)

Get-ChildItem返回的对象是一个FileInfo对象many properties you can query。因此,您可以将结果存储在变量中:

$file = Get-ChildItem $env:APPDATA -Recurse -Include yourfilename.ext

然后,您可以使用Directory属性查询父目录:

$file.Directory

答案 1 :(得分:0)

要注意的一件事是,目录点下是否有多个同名文件。如果有多个文件,则必须决定在这种情况下该怎么做。

这会将文件实例放入数组中。第一个可以在索引0处引用。此代码片段将使用第一个并继续运行。这可能不是你想要做的。

$file = @(,Get-ChildItem -Path $Env:LOCALAPPDATA -Recurse -Include thefile.exe)
if ($file) {
    $thedir = $file[0].DirectoryName
} else {
    # handle error case
}