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

如何在批处理脚本中自动传递GnuPG所需的用户ID输入

解决GPG加密批处理自动输入User ID的问题

我来帮你搞定这个批处理里GPG交互输入的问题,这里有几种实用的方法,优先推荐第一种最可靠的方案:

方法1:直接用GPG的收件人参数(推荐)

GPG本身就提供了跳过交互、直接指定收件人User ID的参数--recipient(缩写为-r),这是最稳妥的方式,完全不需要模拟手动输入。修改你的批处理脚本如下:

@echo off
cd /d "C:\Users\User_Name\Desktop\Encryption\Hemant"
"C:\Program Files (x86)\GnuPG\bin\gpg.exe" --import PB_Key.gpg
"C:\Program Files (x86)\GnuPG\bin\gpg.exe" -e -r "Test" Test.txt

关键说明:

  • *-r "Test"*:直接告诉GPG要将文件加密给User ID为Test的收件人,彻底跳过了交互输入步骤。
  • *cd /d*:加上/d参数可以确保跨盘符切换目录时不会出错,同时路径用引号包裹避免空格导致的问题。

方法2:用echo管道模拟输入

如果你因为某些原因必须通过模拟手动输入的方式传递User ID,可以使用echo命令结合管道符|,把输入内容直接传给GPG命令:

@echo off
cd /d "C:\Users\User_Name\Desktop\Encryption\Hemant"
"C:\Program Files (x86)\GnuPG\bin\gpg.exe" --import PB_Key.gpg
echo Test | "C:\Program Files (x86)\GnuPG\bin\gpg.exe" -e Test.txt

说明:

  • echo Test |:把字符串Test作为标准输入传递给后面的GPG命令,模拟你手动输入并回车的操作。不过这种方式在少数环境下可能因为命令行缓冲问题失效,所以优先选方法1。

方法3:输入重定向

你也可以把需要输入的User ID写入一个文本文件,再通过输入重定向传给GPG:

  1. 先创建一个userid.txt文件,内容是Test(注意最后要加一个空行,匹配GPG提示的“End with an empty line”要求)
  2. 修改批处理脚本:
@echo off
cd /d "C:\Users\User_Name\Desktop\Encryption\Hemant"
"C:\Program Files (x86)\GnuPG\bin\gpg.exe" --import PB_Key.gpg
"C:\Program Files (x86)\GnuPG\bin\gpg.exe" -e Test.txt < userid.txt

这种方式和管道原理类似,但需要额外维护一个文本文件,实用性不如前两种。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:15:16