GPG解密报错:'--decrypt'不被识别,请求排查原因
GPG解密命令因路径含空格报错的排查与解决
问题场景
执行以下CMD命令时出现报错:
echo NTDIND-@11$7at3-1234| gpg.exe --batch --yes --pinentry-mode=loopback --passphrase-fd 0 -o C:/Users/INT0IIAdmin/Documents/Mid server/agent/export/Allstate/Incoming/Import.csv --decrypt C:/Users/INT0IIAdmin/Documents/Mid server/agent/export/Allstate/Incoming/Import.pgp
报错信息:
gpg: Note: '--decrypt' is not considered an option
gpg: WARNING: no command supplied. Trying to guess what you mean ...
usage: gpg [options] [filename]
但将路径修改为不含空格的形式后,命令可正常执行:
echo NTDIND-@11$7at3-1234| gpg.exe --batch --yes --pinentry-mode=loopback --passphrase-fd 0 -o C:/Users/INT0IIAdmin/Documents/Import.csv --decrypt C:/Users/INT0IIAdmin/Documents/Import.pgp
问题原因
报错的核心原因是路径中包含空格但未用双引号包裹。CMD环境下,空格会被视为参数分隔符,原本的输出路径C:/Users/INT0IIAdmin/Documents/Mid server/agent/export/Allstate/Incoming/Import.csv会被拆分成C:/Users/INT0IIAdmin/Documents/Mid和server/agent/export/Allstate/Incoming/Import.csv两个独立参数。这导致GPG无法正确识别后续的--decrypt选项,反而把它当成了无效参数,最终抛出"no command supplied"的警告。
解决方法
将包含空格的输入、输出路径用双引号包裹,确保CMD将整个路径识别为单个参数。修改后的命令如下:
echo NTDIND-@11$7at3-1234| gpg.exe --batch --yes --pinentry-mode=loopback --passphrase-fd 0 -o "C:/Users/INT0IIAdmin/Documents/Mid server/agent/export/Allstate/Incoming/Import.csv" --decrypt "C:/Users/INT0IIAdmin/Documents/Mid server/agent/export/Allstate/Incoming/Import.pgp"
内容的提问来源于stack exchange,提问作者chandaneswar kuanar
相关产品推荐
相关产品推荐

