2017-03-01 21 views
0

コマンドプロンプトでpingを実行し、出力を保存してExcelブックに保存する必要があります。コマンドプロンプトデータをExcelブックに保存する方法vbscript?テキストファイル用のコードがあります。コマンドプロンプトでpingを実行し、ワークブックをExcelに出力します。

Dim oShell,fs 
Set oShell = WScript.CreateObject ("WScript.Shell") 
oShell.run "cmd.exe /C ping 192.168.1.2"& str & " > log.txt" 

set objLog = fs.OpenTextFile("myLogFile.txt", 8, true, 0) 
Set oShell = Nothing 
+0

'ping'出力は' csv'(または 'xls')しながら、かなり構造化されていないように思わは(私は右だ?)の列で構成されていると推定される読むと' log.txt'ラインを解析... – JosefZ

+0

はいそれは構造化されていません。行ごとに行を読んでください。ヘルプhelp –

+0

[カンマ区切りの値ファイルをタブ区切りファイルに変換する方法(https:// blogs .technet.microsoft.com/heyscriptingguy/2005/04/06 /カンマ区切り値ファイルからタブ区切り値ファイルへ変換する方法 – JosefZ

答えて

0

Pingの結果を保存した一時ログファイルを作成する必要はありません。 .Execメソッドを使用してコンソールから簡単に読み込むことができます。以下のサンプルコード。

Set objShell = CreateObject("WScript.Shell") 
Set objExec = objShell.Exec("cmd.exe /c ping 192.168.1.2") 
strOut = objExec.StdOut.ReadAll() 
Set objExec = Nothing : Set objShell = Nothing 

Set objExcel = CreateObject("Excel.Application") 
objExcel.Workbooks.Add 
objExcel.Visible = False 
Set Sheet1 = objExcel.ActiveWorkbook.Worksheets(1) 
arr = Split(strOut, vbNewLine) 
For i = LBound(arr) To UBound(arr) 
    Sheet1.Range("A" & i+1).Value = arr(i) 
Next 
objExcel.ActiveWorkbook.SaveAs "C:\Users\pankaj.jaju\Desktop\PingResult.xlsx" 
objExcel.ActiveWorkbook.Close False 
Set Sheet1 = Nothing : Set objExcel = Nothing 

msgbox "done" 
wscript.quit 
関連する問題