在层次结构的更下方的文件夹中找到文件

时间:2016-08-25 22:59:09

标签: powershell

我需要找到一个.exe文件并运行它,只知道比.exe文件高几级的目录

EG如果我有这个文件夹结构:

测试\ BIN \调试\ netcoreapp1.0 \ WIN7-64 \的Program.exe

我只知道测试文件夹,我需要获取program.exe的路径,而不知道.exe文件的名称(但只有一个.exe文件)。

类似于:

protected $fillable = [
    'name',
    'email',
    'address',
    'area',
    'mobile',
    'blood_group',

];

public function getLastDonation()
{
    return DonorRecord::all()->where('donor_id',$this->id)->pluck('donation_date');
}

public function getAvailableDonors()
{
    $current = Carbon::now();
    return Donor::all()->where($this->getLastDonation(),'<=',$current->addMonths(3));
}

test是要查看的源文件夹。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

gcmaliasGet-Command。您正在寻找gciGet-ChildItem)。使用参数-Recurse递归到子文件夹和-Filter以过滤具有特定扩展名的文件:

Get-ChildItem test -Filter *.exe -Recurse

请注意,正如@Guvante所指出的,这可能会返回多个可执行文件(甚至根本没有),因此您需要决定如何处理所有这些情况(运行所有可执行文件,第一个,最后一个,没有,失败并出现错误,无声地失败,......)。

获得匹配文件后,您可以通过call operator

运行该文件
$exe = Get-ChildItem ... | Select-Object -First 1 -Expand FullName
& $exe

答案 1 :(得分:1)

这听起来像你在寻找:

$path = 'test'
$program = Get-ChildItem -Path $path -Filter *.exe -Recurse
& $program.FullName

&运营商有呼叫运营商;它可以在给定完整路径的情况下运行可执行文件。