Public Class Form2
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' .net 执行多条cmd 命令方法(用&&号连接命令语句)与大批量CSV文件合并成一个文件(cmd1,cmd2)方法
'①方法1
Dim cmd1 As String = "cd c:\testdata"
Dim cmd2 As String = "type *.csv > c:\testdata/alldata/csvall.csv"
Dim cmd3 As String = "exit"
System.Diagnostics.Process.Start("C:\Windows\system32\cmd.exe", "/k " & cmd1 & " && " & cmd2 & " && " & cmd3)
'②方法
'Dim p As Process = New Process
'p.StartInfo.FileName = "C:\Windows\system32\cmd.exe"
'p.StartInfo.Arguments = "/k cd c:\testdata && type *.csv > c:\testdata/alldata/csvall.csv"
'p.Start()
''③方法
''Processオブジェクトを作成
'Dim p As New System.Diagnostics.Process()
''出力をストリームに書き込むようにする
'p.StartInfo.UseShellExecute = False
'p.StartInfo.RedirectStandardOutput = True
''OutputDataReceivedイベントハンドラを追加
'AddHandler p.OutputDataReceived, AddressOf p_OutputDataReceived
'p.StartInfo.FileName = "C:\Windows\system32\cmd.exe"
'p.StartInfo.RedirectStandardInput = False
'p.StartInfo.CreateNoWindow = True
'p.StartInfo.Arguments = "/k cd c:\testdata && type *.csv > c:\testdata/alldata/csvall.csv"
''起動
'p.Start()
''非同期で出力の読み取りを開始
'p.BeginOutputReadLine()
'p.WaitForExit()
'p.Close()
'Console.ReadLine()
'④方法
''コードを隠すコードを選択
''Processオブジェクトを作成
'Dim p As New System.Diagnostics.Process()
''ComSpec(cmd.exe)のパスを取得して、FileNameプロパティに指定
'p.StartInfo.FileName = "C:\Windows\system32\cmd.exe" 'System.Environment.GetEnvironmentVariable("C:\Windows\system32\cmd.exe")
''出力を読み取れるようにする
'p.StartInfo.UseShellExecute = False
'p.StartInfo.RedirectStandardOutput = True
'p.StartInfo.RedirectStandardInput = False
''ウィンドウを表示しないようにする
'p.StartInfo.CreateNoWindow = True
''コマンドラインを指定("/c"は実行後閉じるために必要)
'p.StartInfo.Arguments = "/k cd c:\testdata && type *.csv > c:\testdata/alldata/csvall.csv"
''起動
'p.Start()
''出力を読み取る
'Dim results As String = p.StandardOutput.ReadToEnd()
''プロセス終了まで待機する
''WaitForExitはReadToEndの後である必要がある
''(親プロセス、子プロセスでブロック防止のため)
'p.WaitForExit()
'p.Close()
''出力された結果を表示
'Console.WriteLine(results)
End Sub
'OutputDataReceivedイベントハンドラ
'行が出力されるたびに呼び出される
Private Shared Sub p_OutputDataReceived(sender As Object,
e As System.Diagnostics.DataReceivedEventArgs)
'出力された文字列を表示する
Console.WriteLine(e.Data)
End Sub
End Class
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' .net 执行多条cmd 命令方法(用&&号连接命令语句)与大批量CSV文件合并成一个文件(cmd1,cmd2)方法
'①方法1
Dim cmd1 As String = "cd c:\testdata"
Dim cmd2 As String = "type *.csv > c:\testdata/alldata/csvall.csv"
Dim cmd3 As String = "exit"
System.Diagnostics.Process.Start("C:\Windows\system32\cmd.exe", "/k " & cmd1 & " && " & cmd2 & " && " & cmd3)
'②方法
'Dim p As Process = New Process
'p.StartInfo.FileName = "C:\Windows\system32\cmd.exe"
'p.StartInfo.Arguments = "/k cd c:\testdata && type *.csv > c:\testdata/alldata/csvall.csv"
'p.Start()
''③方法
''Processオブジェクトを作成
'Dim p As New System.Diagnostics.Process()
''出力をストリームに書き込むようにする
'p.StartInfo.UseShellExecute = False
'p.StartInfo.RedirectStandardOutput = True
''OutputDataReceivedイベントハンドラを追加
'AddHandler p.OutputDataReceived, AddressOf p_OutputDataReceived
'p.StartInfo.FileName = "C:\Windows\system32\cmd.exe"
'p.StartInfo.RedirectStandardInput = False
'p.StartInfo.CreateNoWindow = True
'p.StartInfo.Arguments = "/k cd c:\testdata && type *.csv > c:\testdata/alldata/csvall.csv"
''起動
'p.Start()
''非同期で出力の読み取りを開始
'p.BeginOutputReadLine()
'p.WaitForExit()
'p.Close()
'Console.ReadLine()
'④方法
''コードを隠すコードを選択
''Processオブジェクトを作成
'Dim p As New System.Diagnostics.Process()
''ComSpec(cmd.exe)のパスを取得して、FileNameプロパティに指定
'p.StartInfo.FileName = "C:\Windows\system32\cmd.exe" 'System.Environment.GetEnvironmentVariable("C:\Windows\system32\cmd.exe")
''出力を読み取れるようにする
'p.StartInfo.UseShellExecute = False
'p.StartInfo.RedirectStandardOutput = True
'p.StartInfo.RedirectStandardInput = False
''ウィンドウを表示しないようにする
'p.StartInfo.CreateNoWindow = True
''コマンドラインを指定("/c"は実行後閉じるために必要)
'p.StartInfo.Arguments = "/k cd c:\testdata && type *.csv > c:\testdata/alldata/csvall.csv"
''起動
'p.Start()
''出力を読み取る
'Dim results As String = p.StandardOutput.ReadToEnd()
''プロセス終了まで待機する
''WaitForExitはReadToEndの後である必要がある
''(親プロセス、子プロセスでブロック防止のため)
'p.WaitForExit()
'p.Close()
''出力された結果を表示
'Console.WriteLine(results)
End Sub
'OutputDataReceivedイベントハンドラ
'行が出力されるたびに呼び出される
Private Shared Sub p_OutputDataReceived(sender As Object,
e As System.Diagnostics.DataReceivedEventArgs)
'出力された文字列を表示する
Console.WriteLine(e.Data)
End Sub
End Class