windows - output batch resultater at udmærke sig

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg er ny på denne hele batch scripting ting, men jeg kommer virkelig ind i det. Jeg har brugt en batch scrip og udstationere konstante pingresultater sammen med en tidsstempel til en .txt-fil, men vil gerne sende til en .xlsx i stedet. Dette er scriptet, jeg har brugt.


@echo off

title Google Ping

mode 12,1

:start

set DT=\%date:/=-\%

timeout /t 30

echo \%time\% \%date\% >> C:UsersBradleyDesktopLogsgoogle\_log\%DT\%.txt

ping -n 1 8.8.8.8 >> C:UsersBradleyDesktopLogsgoogle\_log\%DT\%.txt

goto start


Enhver hjælp ville blive meget værdsat.

Bedste reference


Der er ingen indfødt måde at læse og skrive en Excel-fil med en ren batchfil på. Du kan gøre det med Vbscript og PowerShell. Men den nemmeste mulighed jeg føler, er at skrive det til en csv-fil. Normalt CSV-filer standard til at åbne med 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

Andre referencer 1


Jeg gør noget, der ligner mig selv. Jeg laver en .txt fil med:


C:
cdUsersgarysDocumentsMy Spreadsheets
dir /s /b  > \%userprofile\%DesktopdirectrySpreadsheetFiles.txt


og få det til Excel med:


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


Materialet går ind i kolonnen C , hvilket giver plads øverst til et overskrift.