forencamper
Goto Top

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:
%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

Content-ID: 39166

Url: https://administrator.de/contentid/39166

Ausgedruckt am: 23.11.2024 um 05:11 Uhr

Biber
Biber 01.09.2006 um 10:53:46 Uhr
Goto Top
Moin Forencamper,

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.
8644
8644 01.09.2006 um 10:53:49 Uhr
Goto Top
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
Biber
Biber 01.09.2006 um 10:57:39 Uhr
Goto Top
[Edit: Vergiss es wieder - Biber war schneller!]
..aber nur 3 Sekunden.. face-wink
Forencamper
Forencamper 01.09.2006 um 11:19:47 Uhr
Goto Top
@Biber:

irgendwie funktioniert des mit dem code nicht...
also bei mir poppt ganz kurz das CMD Fenster hoch,
dann ist es wieder weg... face-sad
weißt Du woran das liegen könnte?
Biber
Biber 01.09.2006 um 11:33:52 Uhr
Goto Top
Moin Forencamper,

Du solltest es schon (erst) am CMD-Prompt austesten.
Also über Start->Ausführen->cmd oder ähnliches ein CMD-Fenster öffnen.
Und dort diese Zeile abschicken.

Gruß
Biber
Forencamper
Forencamper 01.09.2006 um 12:28:32 Uhr
Goto Top
also, funktioniert jetzt soweit,
es ist aber nur der Inhalt der LETZTEN Batch-Datei im Logfile...
ne Ahnung woran das liegen kann?

hat sich erledigt -> hatte keine zwei ">" vor dem logfile...
Biber
Biber 01.09.2006 um 12:36:08 Uhr
Goto Top
Hast Du auch zwei Größer-Zeichen an das Ende der Zeile angehängt?

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
Forencamper
Forencamper 01.09.2006 um 12:41:47 Uhr
Goto Top
kannst du jetzt noch die /c und /cd mit auslesen in ein Feld,
dass ich weiß welches der Standarddrucker ist?
(hintergrund ist eine Migration unseres Druckservers, un davor würd ich gerne wissen wer wo druckt un welcher Drucker standard ist face-wink

thx!
Biber
Biber 01.09.2006 um 13:04:38 Uhr
Goto Top
>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  
))