Inhalte einer *.bat Datei auslesen und in bestimmte Zellen in Microsoft Excel 2k einfügen
Bei uns im Unternehmen wird jeder Drucker dem Client per Batch-Datei zugewiesen. Ich möchte nun diese Batch-Dateien automatisiert auslesen, und den Inhalt in eine Excel-Tabelle schreiben.
Der Name der Batchdatei ist jeweils der PC-Name (G011C222.bat). Dieser sollte als erstes in der Excel-Tabelle eingefügt werden.
Die Batch-Datei ist wie folgt aufgebaut:
Ich möchte nun auslesen, auf welchen Server zugegriffen wird (G011SPRT01), und welcher Netzwerkdrucker verwendet wird (VS_T612) und welcher Drucker derzeit als Standard gesetzt wird.
Dies sollte alles in eine Excel-Tabelle.
Mein Problem ist es, dass ich ca. 900 Batch-Dateien habe die ausgelesen werden sollten.
es muss also automatisiert geschehen.
Hat jemand von euch vielleicht eine Idee dazu, WIE es mit VBA ausgelesen werden kann?
Vielen Dank schonmal im Vorraus,
gruß
Forencamper
Der Name der Batchdatei ist jeweils der PC-Name (G011C222.bat). Dieser sollte als erstes in der Excel-Tabelle eingefügt werden.
Die Batch-Datei ist wie folgt aufgebaut:
%logonserver%\netlogon\tools\con2prt.exe /c \\g011sprt01\VS_T612%logonserver%\netlogon\tools\con2prt.exe /cd \\g011sprt01\VS_T630
Ich möchte nun auslesen, auf welchen Server zugegriffen wird (G011SPRT01), und welcher Netzwerkdrucker verwendet wird (VS_T612) und welcher Drucker derzeit als Standard gesetzt wird.
Dies sollte alles in eine Excel-Tabelle.
Mein Problem ist es, dass ich ca. 900 Batch-Dateien habe die ausgelesen werden sollten.
es muss also automatisiert geschehen.
Hat jemand von euch vielleicht eine Idee dazu, WIE es mit VBA ausgelesen werden kann?
Vielen Dank schonmal im Vorraus,
gruß
Forencamper
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 39166
Url: https://administrator.de/contentid/39166
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
9 Kommentare
Neuester Kommentar
Moin Forencamper,
VBS wäre mir zu langatmig dafür.
Ich empfehle folgenden Oneliner vom CMD-Prompt aus:
...wobei ich unterstellt habe, dass die *.bat's auf x:\pfad liegen und alle mit "g0*" anfangen. Ggf. anpassen.
Umleiten in eine Textdatei mit ">>logfile.xyz"
Dann hast Du es im Excel-tauglichen CSV-Format Computernamen;Printserver;Drucker
Aber mit VBS/VBA gehts bestimmt schneller...
Gruß
Biber
VBS wäre mir zu langatmig dafür.
Ich empfehle folgenden Oneliner vom CMD-Prompt aus:
>for %x in (x:\pfad\g0*.bat) do @for /f "tokens=3" %i in (%x) do @for /f "tokens=1-2 delims=\" %a in ("%i") do @echo %~nx;%a;%b
G0111c222.bat;g011sprt01;VS_T612
G0111c222.bat;g011sprt01;VS_T630
...wobei ich unterstellt habe, dass die *.bat's auf x:\pfad liegen und alle mit "g0*" anfangen. Ggf. anpassen.
Umleiten in eine Textdatei mit ">>logfile.xyz"
Dann hast Du es im Excel-tauglichen CSV-Format Computernamen;Printserver;Drucker
Aber mit VBS/VBA gehts bestimmt schneller...
Gruß
Biber
Vielen Dank schonmal im Vorraus,
P.S Diese Formulierung ist in diesem Seitenarm des Forums Off Limits.
Hi,
zwei Fragen dazu:
- um wieviele Batch-Dateien handelt es sich?
und
- wo sind diese abgelegt (unterschiedliche Pfade)?
[Edit: Vergiss es wieder - Biber war schneller!]
Psycho
zwei Fragen dazu:
- um wieviele Batch-Dateien handelt es sich?
und
- wo sind diese abgelegt (unterschiedliche Pfade)?
[Edit: Vergiss es wieder - Biber war schneller!]
Psycho
Hast Du auch zwei Größer-Zeichen an das Ende der Zeile angehängt?
Bei mir tut es.
Bei mir tut es.
(=12:32:54 F:\=)
>for %x in (f:\g0*.bat) do @for /f "tokens=3" %i in (%x) do @for /f "tokens=1-2 delims=\" %a in ("%i") do @echo %~nx;%a;%b>>log.txt
(=12:33:18 F:\=)
>type log.txt
G0111c222;g011sprt01;VS_T612
G0111c222;g011sprt01;VS_T630
G0111c333;g011sprt01;VS_T613
G0111c333;g011sprt01;VS_T635
>for %x in (x:\pfad\g0*.bat) do @for /f "tokens=2,3" %i in (%x) do @for /f "tokens=1-2 delims=\" %a in ("%j") do @echo %~nx;%a;%b;%i
G0111c222;g011sprt01;VS_T612;/c
G0111c222;g011sprt01;VS_T630;/cd
Als Batch-Skizze:
::---ReadPrinterCnf.bat
for %%x in (x:\pfad\g0*.bat) do @(
for /f "tokens=2,3" %%i in (%%x) do @(
for /f "tokens=1-2 delims=\" %a in ("%%j") do @echo %%~nx;%%a;%%b;%%i
))