在我的脚本中,我即将运行一个命令
pandoc -Ss readme.txt -o readme.html
Run Code Online (Sandbox Code Playgroud)
但我不确定是否pandoc已安装.所以我想做(伪代码)
if (pandoc in the path)
{
pandoc -Ss readme.txt -o readme.html
}
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做呢?
Dav*_*ant 100
你可以通过Get-Command(gcm)进行测试
if (Get-Command "pandoc.exe" -ErrorAction SilentlyContinue)
{
pandoc -Ss readme.txt -o readme.html
}
Run Code Online (Sandbox Code Playgroud)
如果您想测试路径中不存在命令,例如显示错误消息或下载可执行文件(想想NuGet):
if ((Get-Command "pandoc.exe" -ErrorAction SilentlyContinue) -eq $null)
{
Write-Host "Unable to find pandoc.exe in your PATH"
}
Run Code Online (Sandbox Code Playgroud)
尝试
(Get-Help gcm).description
Run Code Online (Sandbox Code Playgroud)
在PowerShell会话中获取有关Get-Command的信息.
这是一个符合 David Brabant 回答精神的函数,用于检查最低版本号。
Function Ensure-ExecutableExists
{
Param
(
[Parameter(Mandatory = $True)]
[string]
$Executable,
[string]
$MinimumVersion = ""
)
$CurrentVersion = (Get-Command -Name $Executable -ErrorAction Stop).Version
If ($MinimumVersion)
{
$RequiredVersion = [version]$MinimumVersion
If ($CurrentVersion -lt $RequiredVersion)
{
Throw "$($Executable) version $($CurrentVersion) does not meet requirements"
}
}
}
Run Code Online (Sandbox Code Playgroud)
这允许您执行以下操作:
Ensure-ExecutableExists -Executable pscp -MinimumVersion "0.62.0.0"
Run Code Online (Sandbox Code Playgroud)
如果满足要求或抛出错误,则它不执行任何操作。
| 归档时间: |
|
| 查看次数: |
14225 次 |
| 最近记录: |