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-Key: 39166

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

Printed on: April 19, 2024 at 11:04 o'clock

Member: Biber
Biber Sep 01, 2006 at 08:53:46 (UTC)
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.
Mitglied: 8644
8644 Sep 01, 2006 at 08:53:49 (UTC)
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
Member: Biber
Biber Sep 01, 2006 at 08:57:39 (UTC)
Goto Top
[Edit: Vergiss es wieder - Biber war schneller!]
..aber nur 3 Sekunden.. face-wink
Member: Forencamper
Forencamper Sep 01, 2006 at 09:19:47 (UTC)
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?
Member: Biber
Biber Sep 01, 2006 at 09:33:52 (UTC)
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
Member: Forencamper
Forencamper Sep 01, 2006 at 10:28:32 (UTC)
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...
Member: Biber
Biber Sep 01, 2006 at 10:36:08 (UTC)
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
Member: Forencamper
Forencamper Sep 01, 2006 at 10:41:47 (UTC)
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!
Member: Biber
Biber Sep 01, 2006 at 11:04:38 (UTC)
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  
))