我已经尝试了一段时间。我在网上搜索过,但尝试过的解决方案似乎无效。
这可以从我的PC上正常运行:
Dim sourceName As String = File_To_Encrypt
Dim gpgsourceName As String = File_To_Encrypt & ".gpg"
Dim argumentString As String = " --batch --yes --recipient recname --encrypt " & sourceName
Dim gpgcmd As String = "\\serv2014\c$\Program Files (x86)\GnuPG\bin\gpg.exe"
Process.Start(gpgcmd, argumentString)
当我尝试在生产环境中运行时,它不起作用。我是VB的新手,我尝试了许多组合:
"""\\serv2014\c$\Program Files (x86)\GnuPG\bin\gpg.exe"""""
ControlChars.Quote & "\\serv2014\c$\Program Files (x86)\GnuPG\bin\gpg.exe" & ControlChars.Quote
即使我从搜索中看到了这一点:“ c:\ sp` ace \ test.ps1” <<也无效
"\\serv2014\c$\Program` Files` (x86)\GnuPG\bin\gpg.exe"
我读到此:注意:在VB.NET中,“”的转义字符是“”。 用三引号似乎挂了这个过程:
"""\\serv2014\c$\Program Files (x86)\GnuPG\bin\gpg.exe"""
也尝试过:错误消息是系统找不到指定的文件
"\\serv2014\c$\Program Files (x86)\GnuPG\bin\gpg.exe"""
赞赏任何建议。
我可以在PC上很好地运行它,Windows管理员告诉我,如果路径中有空格,则必须正确引用它。
我可以从PC的cmd行执行命令-没问题。
我可以从Visual Studio的按钮运行vb程序-运行正常。我可以从PC上的cmd行运行以下命令:
C:\WINDOWS\system32>"\\serv2014\c$\Program Files (x86)\GnuPG\bin\gpg.exe" --batch --yes --recipient recpname --encrypt \\serv2014\e$\Extracts\filename.csv
当我构建.exe时,将其放在服务器上并从调度程序中运行-它不起作用。我问Windows管理员这是否是权限问题-他说不。我是Windows VB的新手,所以不确定要检查什么。
我提到了挂起的结果-作业进入此步骤而挂起并没有退出,我必须终止该过程。或如前所述,错误日志中有一条消息“系统找不到指定的文件”
答案 0 :(得分:-1)
请要求管理员将gpg.exe放入PATH环境变量中,可以避免这些长文件路径。这样一来,如果您需要扩展到多个系统,则作为前提条件,它已经是每个系统的一部分。