输出批处理结果excel

时间:2017-10-21 20:55:18

标签: excel windows batch-file

我是这个整批脚本的新手,但我真的很喜欢它。我一直在使用批处理脚本并输出常量ping结果以及.txt文件的时间戳,但希望输出到.xlsx。这是我一直在使用的脚本。

@echo off

title Google Ping

mode 12,1

:start

set DT=%date:/=-%

timeout /t 30

echo %time% %date% >> C:\Users\Bradley\Desktop\Logs\google_log%DT%.txt

ping -n 1 8.8.8.8 >> C:\Users\Bradley\Desktop\Logs\google_log%DT%.txt

goto start

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

使用纯批处理文件读取和写入Excel文件没有本地方法。你可以用Vbscript和Powershell做到这一点。但我觉得最简单的选择就是将其写入csv文件。通常,CSV文件默认使用Excel打开。

@echo off
title Google Ping
echo date,time,ip,bytes,pingtime,ttl>pinglog.csv

:begin
FOR /F "tokens=3-6 delims=: " %%G IN ('ping -n 1 8.8.8.8^|find /i "reply from"') DO (
    SET ip=%%G
    SET %%H
    SET ping%%I
    SET %%J
)
>>pinglog.csv echo %date%,%time%,%ip%,%bytes%,%pingtime%,%TTL%
timeout /t 10 >nul

GOTO begin

答案 1 :(得分:0)

我自己做了一些非常相似的事情。我使用

创建 .txt 文件
C:
cd\Users\garys\Documents\My Spreadsheets
dir /s /b  > %userprofile%\Desktop\directry\SpreadsheetFiles.txt

然后使用以下内容将其导入Excel:

Sub GetData()
    Dim s As String, Textline As String, i As Long
    Dim RC As Long

    s = Application.GetOpenFilename()
    RC = Rows.Count
    Range("B2:F" & RC).Clear
    Range("A2:A" & RC).ClearContents

    Close #1
    Open s For Input As #1

    i = 2
    Do While Not EOF(1)
        Line Input #1, Textline
        Cells(i, "C").Value = Textline
        i = i + 1
    Loop
    Close #1
End Sub

材料进入 C 列,在顶部留出空间作为标题。