2009-07-16 8 views
4

유닉스 텍스트 파일 중 하나를 dos 텍스트 파일로 변환하려고합니다. 다음 명령을 사용하고 있습니다 :VB.NET 쉘 명령을 던진 파일 예외가 발생했습니다.

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 

그것은 더 복잡하지만 프로세스를 통해 더 많은 힘을 준다. sFileCompletePath에 공백이 포함

+0

나를 위해 일해 줘서 고마워. –

1

경우, 그것은 주위에 따옴표를 추가하여 해결할 수 :

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

당신이 과정을보다 잘 제어하려면, 크리스가 게시 된 예를 사용하는 것이 좋습니다 수 있습니다.

+0

나는 내 경로에 공백이 없음을 확인했다. :( – Shailendra