我需要使用shell从文件中传递密码,并希望注释行可以从此文件中读取密码, - passphrase-fd对我不起作用。它始终输出错误“找不到文件”。我调试输出和输入文件,它们是正确的。可能是passphrase.cat文件,但我检查过,文件中没有问题。注释行中的任何问题??
我的代码如下,感谢您的帮助:
Shell(pgp & "--passphrase -fd 0 <C:\Temp\test.txt" & " -output " & output & "--decrypt " & input & """", AppWinStyle.Hide, True) ' the error happens here.
End If
''' The error as follows:
''' Unable to complete the request: System.IO.FileNotFoundException: File not found. at Microsoft.VisualBasic.Interaction.Shell(String PathName, AppWinStyle Style, Boolean Wait, Int32 Timeout) at the Sign_Click(object sender, EventArgs e) in C:\sign\MainForm.vb:line361
答案 0 :(得分:0)
我期待一大堆问题。要进一步调试,请将命令打印到命令行,而不是使用Shell(...)
执行它。
pgp
变量不以空格结尾,因此应用程序尝试使用C:\path\to\gnupg\gpg.exe--passphrase
参数执行类似C:\path\to\gnupg\gpg.exe
而不是--passphrase
的操作output
变量和--decrypt
命令--passphrase-fd
内可能没有空格,您写了passphrase -fd
--output
是一个很长的参数,需要两个破折号(你写了-output
)