.net 执行多条cmd 命令方法与大批量CSV文件合并成一个文件方法

48 篇文章 1 订阅
45 篇文章 0 订阅
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值