PowerShell 脚本来自动安装 jq 、配置环境变量

一个 💡适用于 Windows 的一键 PowerShell 脚本,会完成以下功能:

  1. 检查是否已安装 jq
  2. 如果没有,则自动下载 jq-win64.exe
  3. 将其保存到 C:\Tools\jq(可修改)
  4. 自动将此目录添加到系统环境变量 PATH

✅ 一键安装 jq 的 PowerShell 脚本

可以将以下内容保存为 install-jq.ps1 文件,然后右键选择"以管理员身份运行"

php 复制代码
# 设置目标目录
$jqDir = "C:\Tools\jq"
$jqExe = "$jqDir\jq.exe"
$jqUrl = "https://github.com/stedolan/jq/releases/download/jq-1.6/jq-win64.exe"

# 如果 jq 已存在则提示
if (Test-Path $jqExe) {
    Write-Host "✅ jq 已安装在 $jqExe" -ForegroundColor Green
    exit
}

# 创建目标目录
if (-Not (Test-Path $jqDir)) {
    New-Item -ItemType Directory -Path $jqDir | Out-Null
    Write-Host "📁 创建目录: $jqDir"
}

# 下载 jq.exe
Write-Host "⬇️ 正在下载 jq..." -ForegroundColor Cyan
Invoke-WebRequest -Uri $jqUrl -OutFile $jqExe

# 设置执行权限
Unblock-File -Path $jqExe

# 添加到系统 PATH(如果尚未添加)
$envPath = [System.Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::Machine)
if ($envPath -notlike "*$jqDir*") {
    Write-Host "🔧 正在将 jq 目录添加到系统环境变量 PATH..." -ForegroundColor Yellow
    [System.Environment]::SetEnvironmentVariable("Path", "$envPath;$jqDir", [System.EnvironmentVariableTarget]::Machine)
    Write-Host "✅ 已成功添加到 PATH!请重新打开终端以生效。" -ForegroundColor Green
} else {
    Write-Host "✅ jq 路径已在系统 PATH 中" -ForegroundColor Green
}

# 测试安装
Write-Host "`n✨ 你现在可以输入 'jq --version' 来验证安装结果。" -ForegroundColor Cyan

📌 使用说明:

  1. 将代码保存为 install-jq.ps1
  2. 右键以管理员身份运行(添加系统 PATH 需要管理员权限);
  3. 成功后你就可以在任何终端中使用:
css 复制代码
jq --version

如果使用的是 普通 PowerShell ,默认可能禁用了 .ps1 脚本执行,可以先运行这条命令来允许当前用户运行脚本:

sql 复制代码
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

相关推荐
野猪疯驴21 小时前
Linux shell学习(更新中....)
linux·shell
胡斌附体6 天前
springbatch使用记录
数据库·接口·shell·命令·批量·springbatch·并发抽取
NiKo_W7 天前
Linux 自定义shell命令解释器
linux·bash·shell
siriuuus11 天前
Shell编程:awk 数组及自定义函数实践
shell
Just_Paranoid13 天前
【Gerrit Patch】批量下载 Gerrit 提交的 Patch
git·gerrit·shell·patch
神秘人X7071 个月前
正则表达式笔记
正则表达式·shell·脚本
Akshsjsjenjd1 个月前
深入理解 Shell 循环与函数:语法、示例及综合应用
linux·运维·自动化·shell
云上小朱1 个月前
文件下载-ubuntu操作系统下载指定文件
linux·shell
岚天start1 个月前
Shell脚本一键监控平台到期时间并钉钉告警推送指定人
linux·shell·钉钉告警·计划任务·监控到期·平台到期
czhc11400756631 个月前
LINUX93 shell:sh -c ‘ ‘sh {}+
shell