gelöst Erstellung einer CMD Datei aus Excel
Forencamper (Level 1) - Jetzt verbinden
12.09.2006, aktualisiert 13.09.2006, 5689 Aufrufe, 9 Kommentare
Hallo Experten!
ich habe eine kurze Frage:
Wie kann ich mit Hilfe von VBA aus Excel 2000 eine CMD-Datei erstellen?
Meine Excel-Tabelle hat folgende Form:
spalte A spalte B spalte C spalte D
PCW004 srvprt01 VS_T430 /cd
die CMD-Datei sollte wie die bezeichnung in spalte A heißen, also PCW004.bat
Der Inhalt der CMD Datei sollte wie folgt aussehen
%logonserver%\netlogon\tools\con2prt.exe SpalteD \\SpalteB\SpalteC
also wie folgt:
%logonserver%\netlogon\tools\con2prt.exe /cd \\srvprt02\VS_T430
:Ende
exit
kann mir vielleicht jemand helfen dies mit VBA zu realisieren?
danke....
ich habe eine kurze Frage:
Wie kann ich mit Hilfe von VBA aus Excel 2000 eine CMD-Datei erstellen?
Meine Excel-Tabelle hat folgende Form:
spalte A spalte B spalte C spalte D
PCW004 srvprt01 VS_T430 /cd
die CMD-Datei sollte wie die bezeichnung in spalte A heißen, also PCW004.bat
Der Inhalt der CMD Datei sollte wie folgt aussehen
%logonserver%\netlogon\tools\con2prt.exe SpalteD \\SpalteB\SpalteC
also wie folgt:
%logonserver%\netlogon\tools\con2prt.exe /cd \\srvprt02\VS_T430
:Ende
exit
kann mir vielleicht jemand helfen dies mit VBA zu realisieren?
danke....
9 Antworten
- LÖSUNG Biber schreibt am 12.09.2006 um 17:22:23 Uhr
- LÖSUNG wakko schreibt am 12.09.2006 um 18:05:38 Uhr
- LÖSUNG Forencamper schreibt am 13.09.2006 um 08:42:02 Uhr
- LÖSUNG Forencamper schreibt am 13.09.2006 um 09:09:41 Uhr
- LÖSUNG Biber schreibt am 13.09.2006 um 09:24:10 Uhr
- LÖSUNG Forencamper schreibt am 13.09.2006 um 09:30:47 Uhr
- LÖSUNG Biber schreibt am 13.09.2006 um 09:45:09 Uhr
- LÖSUNG Forencamper schreibt am 13.09.2006 um 09:52:27 Uhr
- LÖSUNG Biber schreibt am 13.09.2006 um 10:06:11 Uhr
- LÖSUNG Forencamper schreibt am 13.09.2006 um 09:30:47 Uhr
- LÖSUNG Biber schreibt am 13.09.2006 um 09:24:10 Uhr
LÖSUNG 12.09.2006 um 17:22 Uhr
Moin Forencamper,
wäre es nicht sinnhafter, diese Tabelle komplett im CSV-Format für alle Clients erreichbar zu halten und deren LoginSkripte jeweils die Zeile mit "PCW004" rauszusuchen?
Du brauchst ja sonst bei 1000 Clients 1000 Batchdateien.
Gruß
Biber
wäre es nicht sinnhafter, diese Tabelle komplett im CSV-Format für alle Clients erreichbar zu halten und deren LoginSkripte jeweils die Zeile mit "PCW004" rauszusuchen?
Du brauchst ja sonst bei 1000 Clients 1000 Batchdateien.
Gruß
Biber
LÖSUNG 12.09.2006 um 18:05 Uhr
01.
Sub makebat()
02.
Dim datnr%, strtemp$, i%
03.
i = 1
04.
Do Until ActiveSheet.Range("A" & i).Value = ""
05.
datnr = FreeFile
06.
Open "c:\" & ActiveSheet.Range("A" & i) & ".bat" For Output As #datnr //evt. Pfad Anpassen (speichert so direkt unter c
07.
strtemp = "%logonserver%\netlogon\tools\con2prt.exe " & ActiveSheet.Range("D" & i) & " \\" & ActiveSheet.Range("B" & i) & " \\" & ActiveSheet.Range("C" & i)
08.
Print #datnr, strtemp
09.
Close #datnr
10.
i = i + 1
11.
Loop
12.
End Sub
LÖSUNG 13.09.2006 um 08:42 Uhr
thx,
funktioniert so!
funktioniert so!
LÖSUNG 13.09.2006 um 09:09 Uhr
also, funktioniert soweit perfekt.
aber:
es gibt computer die 2 Drucker zugeordnet haben, im excel also 2 spalten haben.
kann ich es irgendwie abprüfen wenn direkt darunter nochmals der selbe pc-name steht dass er diese zeile dann auch in das CMD script einfügt?
aber:
es gibt computer die 2 Drucker zugeordnet haben, im excel also 2 spalten haben.
kann ich es irgendwie abprüfen wenn direkt darunter nochmals der selbe pc-name steht dass er diese zeile dann auch in das CMD script einfügt?
LÖSUNG 13.09.2006 um 09:24 Uhr
Moin Forencamper,
sinngemäß so:
Aber meinen Einwand oben hast Du auch zur Kenntnis genommen?
Gruß
Biber
sinngemäß so:
01.
Sub makebat()
02.
Dim datnr%, strtemp$, i%
03.
i = 1
04.
Do Until ActiveSheet.Range("A" & i).Value = ""
05.
datnr = FreeFile
06.
Open "c:\" & ActiveSheet.Range("A" & i) & ".bat" For Output As #datnr //evt. Pfad Anpassen (speichert so direkt unter c
07.
strtemp = "%logonserver%\netlogon\tools\con2prt.exe " & ActiveSheet.Range("D" & i) & " \\" & ActiveSheet.Range("B" & i) & " \\" & ActiveSheet.Range("C" & i)
08.
if (ActiveSheet.Range("A" & i).Value = ActiveSheet.Range("A" & i+1).Value ) then
09.
i = i +1
10.
strtemp = "%logonserver%\netlogon\tools\con2prt.exe " & ActiveSheet.Range("D" & i) & " \\" & ActiveSheet.Range("B" & i) & " \\" & ActiveSheet.Range("C" & i)
11.
end if
12.
Print #datnr, strtemp
13.
Close #datnr
14.
i = i + 1
15.
Loop
16.
End Sub
Gruß
Biber
LÖSUNG 13.09.2006 um 09:30 Uhr
ja, einwand zur Kenntnis genommen,
aber leider ist des bei uns so ne Vorgabe dass wir eben für jeden client
ein File haben müssen - ich versteh es auch nicht warum
sin 400 Clients un den Aufwand könnte man sich echt ersparen....
probier es jetzt gleich mal aus
aber leider ist des bei uns so ne Vorgabe dass wir eben für jeden client
ein File haben müssen - ich versteh es auch nicht warum
sin 400 Clients un den Aufwand könnte man sich echt ersparen....
probier es jetzt gleich mal aus
LÖSUNG 13.09.2006 um 09:45 Uhr
ein File haben müssen - ich versteh es auch nicht warum
sin 400 Clients un den Aufwand könnte man sich echt ersparen....
sin 400 Clients un den Aufwand könnte man sich echt ersparen....
Sag es nicht uns... sag es den Vorgebern...
LÖSUNG 13.09.2006 um 09:52 Uhr
funktioniert so leider nicht, es nimmt mir immer nur den letzten von mehreren Datensätzen mit gleichem PC namen....
LÖSUNG 13.09.2006 um 10:06 Uhr
ja, hast recht... ich sollte erstmal Kaffee trinken...
Sorry
Biber
01.
...
02.
strtemp = strtemp & vbCRLF & "%logonserver%\netlogon\tools\con2prt.exe " & .....
Biber
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte