以前,我创建了一个脚本,该脚本将找到软件的最新版本并安装.msi,现在已经安装了程序,我想在计算机上搜索该程序并打开.exe。
我相信正在发生的事情是,我尝试运行的exe与所有其他构建文件夹中的exe具有相同的名称。
我尝试用几种不同的方式过滤日期中的项目。以下是我上次尝试使用的当前代码:
$path = "C:\Program Files (x86)\Company"
$refDate = (Get-Date).Adddays(-30)
$filter = "app.exe"
&$latest = Get-ChildItem -Path $path -Filter $filter -File -Recurse | Where-Object {$_.LastWriteTime -gt $refDate}
我想从相应的文件夹中运行正确的exe。
答案 0 :(得分:1)
这是@Matt的答案,已集成到您的脚本中。
$path = "C:\Program Files (x86)\Company"
$refDate = (Get-Date).Adddays(-30)
$filter = "app.exe"
$latest = Get-ChildItem -Path $path -Filter $filter -File -Recurse | Sort lastwritetime -Desc | Select -First 1 -Expand Fullname
& $latest
尝试执行赋值语句(& $latest = ...
)而不是$latest
变量可能是导致错误的原因。
答案 1 :(得分:0)
尝试此操作(如果没有可执行文件,则使用此方法,您不会出错)
$path = "C:\Program Files (x86)\Company"
$filter = "app.exe"
Get-ChildItem $path -Filter $filter -File -Recurse -ErrorAction SilentlyContinue | Sort lastwritetime -Desc | Select -First 1 | %{& $_.FullName}