我使用快捷方式目标功能打开精简版 QGIS,对于了解 QGIS 的人来说,任何时候都有多个用户在使用多个版本。我希望有一个“工具”可以打开任何可用的 QGIS 安装,而不仅仅是已分配目标的一个版本。
“工具”当前打开的是 QGIS 的精简版,删除了许多工具等。仅用于查看数据、打开和关闭图层。现在我已设置了多个快捷方式,每个目标为“C:\Program Files\QGIS 3.10\bin\qgis-ltr-bin-g7.exe”或“C:\Program Files\QGIS 3.4\bin\qgis-ltr-bin-g7.exe”等,具体取决于版本。
现在我的问题是,有没有办法只使用一个“工具”来查找已安装的 QGIS 版本,而不是为每个版本设置单独的图标。某种通配符函数或 IF/THEN 函数。
我不确定我是否解释得很清楚,但希望有人可以提供帮助。
^^^ 添加了目标路径的屏幕截图,我更愿意这样做而不是运行脚本?如果有通配符或多个文件夹表达式?
答案1
在 PowerShell 中,您将编写一个脚本,依次检查可执行文件列表中的每个可执行文件并执行找到的第一个可执行文件。
# Folder paths only
$path1 = "C:\Program Files\ApplicationV1\"
$path2 = "C:\Program Files\ApplicationV2\"
$path3 = "C:\Program Files\ApplicationV3\"
# Name of executable
$executable = "app.exe"
# Running it
if("$path1\$executable") {
Set-Location $path1
.\$executable
exit
}
if("$path2\$executable") {
Set-Location $path2
.\$executable
exit
}
if("$path3\$executable") {
Set-Location $path3
.\$executable
exit
}
Else {
Write-Host "No executables found."
}
我还没有测试过,我知道我可以用数组和循环来简化它,但这就是我花了 3 分钟努力的结果。此脚本假设可执行文件的名称相同,但可以使用哈希值轻松重写,从而允许可执行文件的名称也具有灵活性。
关键概念是,PowerShell 不允许您直接运行可执行文件,除非您考虑到一些事项,例如,您需要先进入可执行文件的目录才能运行它,然后您需要在找到要运行的可执行文件后退出脚本,以避免查找和运行后续列表。