【问题标题】:Argument issue when using vb.net shell ()使用 vb.net shell () 时的参数问题
【发布时间】:2014-11-22 18:02:53
【问题描述】:

我试图在 vb.net 中使用 shell 函数来运行程序,然后在其他地方写入/导出结果,它适用于 win8,但不适用于 XP !命令行打印这个错误

'C:\Documents' 未被识别为内部或外部命令, 可运行的程序或批处理文件。 按任意键继续 。 . .

Dim save as String="C:\exported.txt"
Dim command As String = tempPath & "app.exe -f " & IO.Path.GetTempPath & "  -o " & save & "  & pause"

shell("cmd /c " & command, AppWinStyle.NormalFocus, True)

【问题讨论】:

  • 在你的程序的 shell(... 行中打断,然后看看命令中的内容。把它贴在这里。

标签: vb.net shell process


【解决方案1】:
    Process.Start(IO.Path.Combine(tempPath, "app.exe"), "-f """ & IO.Path.GetTempPath & """  -o """ & Save() & """  & pause")

【讨论】:

  • 没用 :/ ,我的脚本在 win8 下完美运行,但 xp !!!我不知道为什么!!!
  • 向我们提供您的完整代码而不是部分代码,我们可以检查是否有其他原因导致它。
【解决方案2】:

您在命令中有一个文件夹,其中有一个空格(可能是文档和设置文件夹)。 cmd.exe 无法判断空格是在文件名中还是文件名末尾,除非您将文件名放在“”中 - 例如“C:\doxuments and Settings...”

Dim command As String = tempPath & "app.exe -f \"" & IO.Path.GetTempPath & "\"  -o \"" & save & "\"  & pause"

(\" 旨在转义一个 ",以便将其转换为在字符串中嵌入 "。我不确定 VB 语法是什么。)

编辑:

我认为下面的@Roy van der Velde 有“转义正确”。最后未检查的部分是 tempPath。请参阅我对这个问题的评论。

【讨论】:

  • 对不起,它没有用,我试图逃跑但没有任何效果,这让我发疯了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多