Inhalte einer *.bat Datei auslesen und in bestimmte Zellen in Microsoft Excel 2k einfügen
Forencamper (Level 1) - Jetzt verbinden
01.09.2006, aktualisiert 13:04 Uhr, 9963 Aufrufe, 9 Kommentare
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
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
9 Antworten
- LÖSUNG Biber schreibt am 01.09.2006 um 10:53:46 Uhr
- LÖSUNG 8644 schreibt am 01.09.2006 um 10:53:49 Uhr
- LÖSUNG Biber schreibt am 01.09.2006 um 10:57:39 Uhr
- LÖSUNG Forencamper schreibt am 01.09.2006 um 11:19:47 Uhr
- LÖSUNG Biber schreibt am 01.09.2006 um 11:33:52 Uhr
- LÖSUNG Forencamper schreibt am 01.09.2006 um 12:28:32 Uhr
- LÖSUNG Biber schreibt am 01.09.2006 um 12:36:08 Uhr
- LÖSUNG Forencamper schreibt am 01.09.2006 um 12:41:47 Uhr
- LÖSUNG Biber schreibt am 01.09.2006 um 13:04:38 Uhr
- LÖSUNG Forencamper schreibt am 01.09.2006 um 12:41:47 Uhr
- LÖSUNG Biber schreibt am 01.09.2006 um 12:36:08 Uhr
- LÖSUNG Forencamper schreibt am 01.09.2006 um 12:28:32 Uhr
- LÖSUNG Biber schreibt am 01.09.2006 um 11:33:52 Uhr
LÖSUNG 01.09.2006 um 10:53 Uhr
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.LÖSUNG 01.09.2006 um 10:53 Uhr
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
LÖSUNG 01.09.2006 um 10:57 Uhr
[Edit: Vergiss es wieder - Biber war schneller!]
..aber nur 3 Sekunden.. LÖSUNG 01.09.2006 um 11:19 Uhr
@Biber:
irgendwie funktioniert des mit dem code nicht...
also bei mir poppt ganz kurz das CMD Fenster hoch,
dann ist es wieder weg...
weißt Du woran das liegen könnte?
irgendwie funktioniert des mit dem code nicht...
also bei mir poppt ganz kurz das CMD Fenster hoch,
dann ist es wieder weg...
weißt Du woran das liegen könnte?
LÖSUNG 01.09.2006 um 11:33 Uhr
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
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
LÖSUNG 01.09.2006 um 12:28 Uhr
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...
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...
LÖSUNG 01.09.2006 um 12:36 Uhr
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
LÖSUNG 01.09.2006 um 12:41 Uhr
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
thx!
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
thx!
LÖSUNG 01.09.2006 um 13:04 Uhr
>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
))