You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows任务计划下PGP自动解密脚本异常及功能咨询

批处理自动执行问题解决
  • 首先在你的批处理脚本第一行添加@echo off,关闭命令行内容回显,避免输出脚本内容触发交互等待。
  • 检查批处理文件编码,确保使用ANSI编码,UTF-8带BOM的编码会导致Windows批处理首行识别异常,触发回车等待。
  • 若需要完全隐藏命令窗口,在Windows任务计划程序的任务设置中,选择「不管用户是否登录都要运行」,同时勾选「隐藏」选项,即可避免弹出命令提示符窗口。
密码输入弹窗问题解决

你当前的--passphrase-fd参数用法错误,该参数需要传入数字类型的文件描述符,而非直接填写密码明文,导致GnuPG无法读取到正确密码,才会触发弹窗输入。
替换为以下参数组合即可解决:

  1. 替换--passphrase-fd "secretPassPhrase"为--passphrase "你的密码明文"
  2. 新增--pinentry-mode loopback参数,强制GnuPG不调用图形化密码输入工具,直接使用脚本传入的密码。

修正后的单文件解密命令示例:

gpg --keyring "C:\UserFolder\.openpgpstudio\keys\pubring.pkr" --secret-keyring "C:\UserFolder\.openpgpstudio\keys\secring.skr" --batch --yes --pinentry-mode loopback --passphrase "secretPassPhrase" -o "D:\FilePath\testPGP.txt" -d "D:\FilePath\testPGP.txt.pgp"

如果担心明文密码写在脚本中存在安全风险,可将密码单独存储在权限受控的文本文件中,使用--passphrase-file "C:\路径\到\密码文件.txt"参数读取密码即可。

后续问题解答

通配符批量解密实现

gpg的-d参数本身不直接支持通配符匹配,可通过Windows批处理的for循环遍历所有.pgp后缀文件实现批量解密。

输出与原文件同名的TXT文件

可以通过批处理for循环的变量参数截取原文件名,自动生成同名txt文件名,完整的批量自动解密脚本示例如下:

@echo off
:: 配置PGP文件所在目录
set "PGP_FOLDER=D:\FilePath"

for %%f in ("%PGP_FOLDER%\*.pgp") do (
    gpg --keyring "C:\UserFolder\.openpgpstudio\keys\pubring.pkr" --secret-keyring "C:\UserFolder\.openpgpstudio\keys\secring.skr" --batch --yes --pinentry-mode loopback --passphrase "secretPassPhrase" -o "%%~dpnf.txt" -d "%%f"
    :: 解密完成后如需删除原加密文件,可取消下一行注释
    :: del "%%f"
)
exit

其中%%~dpnf会自动提取文件的盘符、路径、主文件名,拼接.txt后就和原pgp文件同名。

内容的提问来源于stack exchange,提问作者MERNboy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:51:04