4

UNIX テキスト ファイルの 1 つを dos テキスト ファイルに変換しようとしています。次のコマンドを使用しています。

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

サーバーの環境パスに unix2dos コマンドを既に追加しています。

しかし、上記のコマンドを実行すると、ファイルがディスク上にある場合でも FileNotFound 例外が発生します。

私が見逃しているものはありますか?

4

2 に答える 2

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

より複雑ですが、プロセスをより強力に制御できます。

于 2009-07-16T09:51:49.330 に答える
1

スペースが含まれている場合sFileCompletePathは、二重引用符を追加することで解決できます。

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

プロセスをより細かく制御したい場合は、Chris が投稿した例を使用することをお勧めします。

于 2009-07-16T10:29:04.700 に答える