管道工作在Powershell而不是CMD?

时间:2013-06-18 15:30:28

标签: powershell cmd pipeline gnupg

因此,这个问题的更大背景是,无论出于何种原因,使用Bouncy Castle解密此文件是不可能的,因此我们尝试使用普通的gpg实用程序来执行自动命令行...我原本以为这比想弄清楚为什么Bouncy Castle不相信这是一个真正的PGP加密文件会更快,但我可能错了。

这是管道:

echo password | gpg --batch --yes --passphrase-fd 0 "filename"

这在Powershell中非常有效。实际上,在Powershell中,这项工作的几个变化非常完美,但这不是重点......

关键是我正在尝试在cmd.exe中运行它并且它在那里不起作用。相反,我得到一个错误,说没有提供密码,因此,没有可用的密钥,因此,文件无法解密。

鉴于我为此读到的指令特别是 cmd.exe(不是Powershell),我有点困惑。知道这里发生了什么吗?

1 个答案:

答案 0 :(得分:1)

显然,问题是通过管道传递的密码包含一个空格 - 在我们假设的“d”和管道符号本身之间出现的空格。 :)

因此,为了将来参考,这有效:

echo password|gpg --batch --yes --passphrase-fd 0 "filename"

顺便说一句,这正是指南所说的,但是我从来没有抓过,因为我在Powershell进行了初步测试,并没有意识到挑剔的cmd的回声命令是多么的。