📌  相关文章
📜  获取程序路径 powershell - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:57:16.945000             🧑  作者: Mango

获取程序路径 in Powershell - Shell-Bash

在PowerShell或Shell-Bash脚本中,获取程序路径是一个常见的需求。程序员通常需要获得当前执行脚本的路径,以便进行文件操作或新进程的启动。本文将介绍如何在Powershell或Shell-Bash中获取程序路径,并提供相关的代码片段。

获取当前程序的路径
Powershell版本

在Powershell中,可以使用$MyInvocation预定义变量来获取当前程序的路径。$MyInvocation.MyCommand.Path将返回当前脚本的完整路径。下面是一个示例代码片段:

$scriptPath = $MyInvocation.MyCommand.Path | Split-Path -Parent
Write-Host "当前脚本路径: $scriptPath"
Shell-Bash版本

在Shell-Bash中,可以使用$0特殊变量来获取当前程序的路径。dirname "$0"将返回当前脚本的目录路径。下面是一个示例代码片段:

scriptPath=$(dirname "$0")
echo "当前脚本路径: $scriptPath"
获取指定程序的路径

如果需要获取指定程序的路径,可以使用特定的命令来实现。以下是一些常见的操作系统命令和相关的代码片段。

Powershell版本

获取已安装程序的路径

在Powershell中,可以使用Get-Command命令来获取已安装程序的路径。下面是一个示例代码片段,用于获取notepad.exe的路径:

$programPath = (Get-Command notepad.exe).Source
Write-Host "notepad.exe的路径: $programPath"

获取注册表中程序的路径

在Powershell中,可以使用Get-ItemProperty命令来获取注册表中程序的路径。下面是一个示例代码片段,用于获取Chrome浏览器的路径:

$programPath = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe').'(default)'
Write-Host "Chrome浏览器的路径: $programPath"
Shell-Bash版本

获取已安装程序的路径

在Shell-Bash中,可以使用which命令来获取已安装程序的路径。下面是一个示例代码片段,用于获取ls命令的路径:

programPath=$(which ls)
echo "ls命令的路径: $programPath"

获取注册表中程序的路径

在Shell-Bash中,可以使用grep命令和相关的注册表文件来获取注册表中程序的路径。下面是一个示例代码片段,用于获取Chrome浏览器的路径:

programPath=$(grep -E '^\s*"chrome\.exe"' /path/to/registry.dat | awk -F '"' '{print $2}')
echo "Chrome浏览器的路径: $programPath"

请注意,代码片段中的/path/to/registry.dat应该替换为实际的注册表文件路径。

以上就是在Powershell - Shell-Bash中获取程序路径的一些方法和代码片段。根据你的具体需求,选择适合的方法来获取程序路径,以便进行后续操作。