【问题标题】:Proper Visual Basic quoting for Program Files (86) path in the Process()Process() 中程序文件 (x86) 路径的正确 Visual Basic 引用
【发布时间】:2018-08-23 22:32:59
【问题描述】:

我一直在尝试解决这个问题。我在网上搜索过,我尝试过的解决方案似乎不起作用。

这在我的电脑上运行正常:

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 管理员告诉我如果路径中有空格,那么我必须正确引用它。

我可以从我的电脑的 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 的新手,所以不确定还有什么要检查的。

我提到了它挂起的结果 - 作业到达这一步并且挂起不退出我必须终止进程。或者如前所述,错误日志中有一条消息“系统找不到指定的文件”

【问题讨论】:

  • “不起作用”到底是怎么回事?您确定问题是引用而不是其他问题吗?
  • 我在上面添加了详细信息
  • 那里不需要任何引号(在VB.Net 和C# 中,该字符串在此上下文中是有效路径)。您确定您的应用不需要管理员权限,或者为此设置了“特殊”组策略,以便任何人都可以从任何地方访问该管理员共享吗?您是否尝试过使用 IP 地址而不是机器名?

标签: vb.net visual-studio gnupg


【解决方案1】:

请管理员将 gpg.exe 放入 PATH 环境变量中,您可以避免这些长文件路径。因此,如果您需要扩展到许多系统,它已经是每个系统的一部分,作为先决条件。

【讨论】:

  • 将反引号更改为反斜杠,例如从 "\\serv2014\c$\Program` Files` (x86)\GnuPG\bin\gpg.exe" 到 "\\serv2014\c$\程序\文件\ (x86)\GnuPG\bin\gpg.exe"
  • Program Files (x86) 是目录的名称,而不是 3 个单独的目录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
  • 2010-09-10
  • 1970-01-01
  • 2011-08-15
  • 2011-05-24
  • 2010-11-15
相关资源
最近更新 更多