2009-07-16 129 views
4

我想将我的一个unix文本文件转换为一个dos文本文件。我正在使用以下命令:VB.NET shell命令抛出文件未找到异常

Shell(string.format("unix2dos {0}", sFileCompletePath)) 

我已经在服务器上的环境路径中添加了unix2dos命令。

但是,当我执行上述命令时,即使文件位于磁盘上,我也会得到FileNotFound异常。

有什么我错过了吗?

回答

3

我会建议做这种方式:

Public Sub ShellandWait(ByVal ProcessPath As String, ByVal Arguments As String) 
     Dim objProcess As System.Diagnostics.Process 
     Try 
      objProcess = New System.Diagnostics.Process() 
      objProcess.StartInfo.Arguments = Arguments 
      objProcess.StartInfo.FileName = ProcessPath 
      objProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized 
      objProcess.Start() 
      'Wait until it's finished 
      objProcess.WaitForExit() 
      'Exitcode as String 
      Console.WriteLine(objProcess.ExitCode.ToString()) 
      objProcess.Close() 
     Catch ex As Exception 
      Console.WriteLine("Could not start process " & ProcessPath & " " & ex.Message.ToString) 
     End Try 

    End Sub 

它更复杂,但给你更多的权力在你的进程。

+0

这工作对我来说,谢谢 – 2009-09-03 13:32:56

1

如果sFileCompletePath包含空格,就可以通过它周围加双引号解决这个问题:

Shell(String.Format("unix2dos ""{0}""", sFileCompletePath)) 

如果你想拥有对过程更多的控制,它可能是更好地使用克里斯张贴的例子。

+0

我没有检查,发现我的路径中没有空格。 :( – Shailendra 2009-07-16 14:22:30