使用vb.net shell()时的参数问题

时间:2014-11-22 18:02:54

标签: vb.net shell process

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

' C:\文件'不被视为内部或外部命令, 可操作程序或批处理文件。 按任意键继续 。 。

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)

2 个答案:

答案 0 :(得分:1)

    Process.Start(IO.Path.Combine(tempPath, "app.exe"), "-f """ & IO.Path.GetTempPath & """  -o """ & Save() & """  & pause")

答案 1 :(得分:0)

您在命令中有一个文件夹,其中有一个空格(可能是文档和“设置”文件夹)。 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。看看我对这个问题的评论。