我需要找到一个.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是要查看的源文件夹。
我该怎么做?
答案 0 :(得分:1)
gcm
是alias的Get-Command
。您正在寻找gci
(Get-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
&
运营商有呼叫运营商;它可以在给定完整路径的情况下运行可执行文件。