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

相关推荐
sbjdhjd3 天前
从污点追踪断点到 PHP-FPM 请求队列:HIDS PHP WebShell 样本复盘
开发语言·网络安全·数据挖掘·渗透测试·开源·php·shell
Shell运维手记6 天前
Shell 结构化命令知识点总结(case、for、while)
运维·microsoft·shell·脚本
云计算练习生6 天前
什么是 Bash?Linux 默认 Shell 的核心功能
linux·操作系统·bash·shell·命令解释器
猫咪很可爱7 天前
MySQL 5.7 备份恢复后函数与存储过程丢失:原因分析与正确备份姿势
数据库·mysql·bug·shell
qetfw8 天前
Linux 文件清理:find、mtime 与安全传参验证
linux·shell·1024程序员节
Lsetea9 天前
curl下载HTTPS文件报23:证书验证成功与本地写入失败分层排查
linux·https·shell·ssl证书·curl
DogDaoDao11 天前
Windows 双 Shell 全面对比:CMD 与 PowerShell 的技术剖析
windows·shell·测试·powershell·cmd·程序员开发
Lsetea12 天前
OpenSSL的checkhost显示不匹配却退出0:名称检查与证书验收
linux·https·shell·ssl证书·openssl
钱栈up14 天前
耳机音效不对,我顺手查了系统更新,结果挖出个崩溃了整天的服务
windows·shell
qetfw14 天前
grep 文本筛选:匹配、反选与退出状态验证
linux·shell