2009-07-16 6 views
4

私のUNIXテキストファイルの1つを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 

それはもっと複雑だが、あなたの方法よりもより多くの電力を提供します。

+0

これは私のために働いた、ありがとう –

1

sFileCompletePathにスペースが含まれている場合は、その周りに二重引用符を追加することによって、それを解決することができます:

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

あなたがプロセスをより細かく制御したい場合は、クリスが掲載例を使用する方がよいかもしれません。

+0

私はチェックし、私のパスにスペースがないことを知った。 :( – Shailendra

関連する問題