Mit Batchdatei Informationen auslesen und diese strukturiert in Excel ausgeben
Hallo,
ich habe folgendes Vorhaben:
Ich bin dabei ein Script zu schreiben welches zur Inventarerfassung der vorhandenen Computer dient.
D.h. es liest einige Computerdaten aus und speichert diese dann (bis jetzt) in einer Textdatei.
So sieht das Script aus:
Es gibt dann ungefähr das hier aus:
Nun der springende Punkt:
Es ist sehr umständlich bei mehreren 100 PC's immer jede einzelne Textdatei zu öffnen um eine gesuchte Information heraus zu suchen...
Ist es möglich die Ausgabe in eine csv oder am besten direkt in eine xls datei zu schreiben? Und das am besten in "eine" Datei.
Leider komm ich nicht drauf wie ich dem Batch script noch irgendwo Semikolons beifügen kann um eine trennung durch Spalten zu ermöglichen.
Es wäre perfekt wenn das ganze dann ungefähr so in der Art aussehen würde:
grüße
Florian
ich habe folgendes Vorhaben:
Ich bin dabei ein Script zu schreiben welches zur Inventarerfassung der vorhandenen Computer dient.
D.h. es liest einige Computerdaten aus und speichert diese dann (bis jetzt) in einer Textdatei.
So sieht das Script aus:
@echo off
title Inventariesierungsscript
color 0C
echo.
echo.
echo.
echo Hallo %USERNAME%!
echo.
echo.
echo Programm erfasst nun, aus Inventariesierungs-Gruenden, Ihre Systemdaten.
echo Bitte Programm nicht manuell schliessen! Programm schliesst nach Ablauf selbst!
echo.
echo.
set Pfad= \\ivsserv08\prog\HOME\SPRINGMANN\RechnerInventarIVS\%Computername%.txt
::###Info Ausgabe###::
echo Benutzername: %Username% > %Pfad%
echo Computername: %Computername% >> %Pfad%
systeminfo | find /i "Urspr" >> %Pfad%
systeminfo | find /i "Prozessor" >> %Pfad%
systeminfo | find /i "mhz" >> %Pfad%
systeminfo | find /i "Gesamter physikalischer Speicher" >> %Pfad%
fsutil volume diskfree c: | find /i "Gesamtanzahl Bytes" >> %Pfad%
::###Bestimmung OS###::
VER |find /i "Windows 95" >NUL
IF NOT ERRORLEVEL 1 GOTO 95
VER |find /i "Windows 98" >NUL
IF NOT ERRORLEVEL 1 GOTO 98
VER |find /i "Windows Millennium" >NUL
IF NOT ERRORLEVEL 1 GOTO ME
VER | find "XP" > nul
IF %errorlevel% EQU 0 GOTO XP
VER | find "2000" > nul
IF %errorlevel% EQU 0 GOTO 2000
VER | find "NT" > nul
IF %errorlevel% EQU 0 GOTO NT
VER | find "Microsoft Windows [Version 6.0" > nul
IF %errorlevel% EQU 0 GOTO Vista
VER | find "Microsoft Windows [Version 6.1" > nul
IF %errorlevel% EQU 0 GOTO W7
VER | find "Microsoft Windows [Version 6.2" > nul
IF %errorlevel% EQU 0 GOTO W8
VER | find "Microsoft Windows [Version 5" > nul
IF %errorlevel% EQU 0 GOTO 2003
goto unknown
:unknown
echo Betriebsystem: Unbekanntes Betriebssystem >> %Pfad%
goto end
:95
echo Betriebsystem: Microsoft Windows 95 >> %Pfad%
goto end
:98
echo Betriebsystem: Microsoft Windows 98 >> %Pfad%
goto end
:ME
echo Betriebsystem: Microsoft Windows Millennium >> %Pfad%
goto end
:NT
echo Betriebsystem: Microsoft Windows NT >> %Pfad%
goto end
:2000
echo Betriebsystem: Microsoft Windows 2000 >> %Pfad%
goto end
:XP
echo Betriebsystem: Microsoft Windows XP >> %Pfad%
goto end
:Vista
echo Betriebsystem: Microsoft Windows Vista >> %Pfad%
goto end
:W7
echo Betriebsystem: Microsoft Windows 7 >> %Pfad%
goto end
:W8
echo Betriebsystem: Microsoft Windows 8 >> %Pfad%
goto end
:2003
echo Betriebsystem: Microsoft Windows 2003 >> %Pfad%
goto end
:end
wmic bios get version | find /i "HP" >> %Pfad%
exit
Es gibt dann ungefähr das hier aus:
Nun der springende Punkt:
Es ist sehr umständlich bei mehreren 100 PC's immer jede einzelne Textdatei zu öffnen um eine gesuchte Information heraus zu suchen...
Ist es möglich die Ausgabe in eine csv oder am besten direkt in eine xls datei zu schreiben? Und das am besten in "eine" Datei.
Leider komm ich nicht drauf wie ich dem Batch script noch irgendwo Semikolons beifügen kann um eine trennung durch Spalten zu ermöglichen.
Es wäre perfekt wenn das ganze dann ungefähr so in der Art aussehen würde:
grüße
Florian
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 319778
Url: https://administrator.de/contentid/319778
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
9 Kommentare
Neuester Kommentar
Viel zu umständlich... Die Infos ließt man heute direkt mit WMI aus
Als CSV ausgeben lässt sich das ganze dann per export-csv
Gruß Schluckauf
Als CSV ausgeben lässt sich das ganze dann per export-csv
Gruß Schluckauf
Hallo,
Powershell kennt aber wie es ein Excelblatt macht.
Gruß,
Peter
Zitat von @Flodsche:
Ist es möglich die Ausgabe in eine csv oder am besten direkt in eine xls datei zu schreiben? Und das am besten in "eine" Datei.
Nein, nicht mit BATCH (DOS). Mit anderen Werkzeuge wie WMI, VBS, Powershell ist es schon möglich.Ist es möglich die Ausgabe in eine csv oder am besten direkt in eine xls datei zu schreiben? Und das am besten in "eine" Datei.
Leider komm ich nicht drauf wie ich dem Batch script noch irgendwo Semikolons beifügen kann um eine trennung durch Spalten zu ermöglichen.
Na, hinter jeden Wert eben ein ; setzten. CSV made by hand. Eine CSV ist keine Excel Datei. Excel kann aber eine CSV datei recht gut erkennen und einlesen. CSV = Comma Seperatet Values ungleich ein .xlx(x) Dateiaufbau. Speichere mal ein leeres Excelblatt und schau dir die Datei an (im Editor). Das willst du nicht mit Batch nachbauen.Powershell kennt aber wie es ein Excelblatt macht.
Es wäre perfekt wenn das ganze dann ungefähr so in der Art aussehen würde:
Das ist ein reines Excelblatt und hatz selbst mit einer CSV null zu tun, das CSV liefert höchstens die Daten/Werte aber keinerlei weitere Infos, wei Formatierung, Formeln usw.Gruß,
Peter
Naja wenn es nur um die Struktur und gezielte Informationensuche geht, lässt sich das ja auch mit einer .txt Datei realisieren. Mit ein bischen Stringmanipulation Tabstopps rein, vllt ein paar Sonderzeichen zum Trennen. So dass mans übersichtlich anschauen und mithilfe einer for schleife (+findstr) wieder einlesen/suchen kann. Aber um in Excel zu schreiben brauchste da was anderes.
LG Tim
LG Tim
Hallo,
https://social.technet.microsoft.com/Forums/de-DE/cc67795d-9c62-4800-b34 ...
https://technet.microsoft.com/de-de/library/dd297620.aspx
http://sharepoint.stackexchange.com/questions/103771/how-to-export-powe ...
https://blogs.technet.microsoft.com/heyscriptingguy/2014/01/10/powershel ...
Vielleicht besser ein Handbuch für Powershell mal lesen ?
https://blogs.technet.microsoft.com/musings_of_a_technical_tam/2012/06/0 ...
Gruß,
Peter
Zitat von @Flodsche:
Nun steh ich aber wieder vor dem gleichen Problem, wie bringe ich das jetzt in Excel? Geht dies mit Powershell nun einfacher?
Die Ausgabe an Excel senden.Nun steh ich aber wieder vor dem gleichen Problem, wie bringe ich das jetzt in Excel? Geht dies mit Powershell nun einfacher?
https://social.technet.microsoft.com/Forums/de-DE/cc67795d-9c62-4800-b34 ...
https://technet.microsoft.com/de-de/library/dd297620.aspx
http://sharepoint.stackexchange.com/questions/103771/how-to-export-powe ...
https://blogs.technet.microsoft.com/heyscriptingguy/2014/01/10/powershel ...
Vielleicht besser ein Handbuch für Powershell mal lesen ?
https://blogs.technet.microsoft.com/musings_of_a_technical_tam/2012/06/0 ...
Gruß,
Peter