请帮帮我[“Windows无法找到”C:\ Users \ ...“]

时间:2012-08-16 09:49:29

标签: .net cmd

我在VB.NET中开发了一个应用程序......

 Dim DIAGTOOL_loc As String = Environment.CurrentDirectory & "\folder\file.exe"
 Dim shellexec As New System.Text.StringBuilder
 shellexec.AppendLine("@echo off")
 shellexec.AppendLine("cls()")
 shellexec.AppendLine(": begin()")
 shellexec.AppendLine("cls()")  
 shellexec.AppendLine("START " & DIAGTOOL_loc.ToString)
 shellexec.AppendLine("pause")
 IO.File.WriteAllText("tester.bat", shellexec.ToString())

 System.Diagnostics.Process.Start("tester.bat")

现在,当Comand Prompt打开时,它应该执行file.exe(DIAGTOOL_loc),但是当CMD加载时,它会显示“Windows找不到”C:\ Users \ ...“

但为什么呢?怎么了?当我输入Process.start(DIAGTOOL_loc)时,DIAGTOOL_loc变量中注册的路径有效,因此,文件存在...为什么cmd找不到它?

这个命令:

shellexec.AppendLine("START " & DIAGTOOL_loc.ToString)

应该打开file.exe ...但它不起作用......

2 个答案:

答案 0 :(得分:0)

试试这个:

shellexec.AppendLine(String.Format("START """{0}""" , DIAGTOOL_loc)) 

还修复了批处理命令:

 shellexec.AppendLine("cls")   
 shellexec.AppendLine(":begin")   
 shellexec.AppendLine("cls")  

答案 1 :(得分:0)

在您生成的tester.bat中,您将看到如下所示的行:

START c:\users\some folders\folder\file.exe

正如您所看到的,路径未被引用,因此如果路径包含空格(我怀疑您的路径包含空格),则会失败。

请注意,您的代码也可以更好地编写 - 使用System.IO.Path.Combine组合路径的各个部分:

 Dim DIAGTOOL_loc As String = _
     """ + Path.Combine(Environment.CurrentDirectory, "\folder\file.exe") + """