forencamper
Goto Top

Erstellung einer CMD Datei aus Excel

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

kann mir vielleicht jemand helfen dies mit VBA zu realisieren?
danke....

Content-Key: 36745

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

Ausgedruckt am: 29.03.2024 um 08:03 Uhr

Mitglied: Biber
Biber 12.09.2006 um 17:22:23 Uhr
Goto Top
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
Mitglied: wakko
wakko 12.09.2006 um 18:05:38 Uhr
Goto Top
Sub makebat()
Dim datnr%, strtemp$, i%
i = 1
Do Until ActiveSheet.Range("A" & i).Value = ""  
    datnr = FreeFile
    Open "c:\" & ActiveSheet.Range("A" & i) & ".bat" For Output As #datnr {{comment_single_line_double_slash:0}} 
    strtemp = "%logonserver%\netlogon\tools\con2prt.exe " & ActiveSheet.Range("D" & i) & " \\" & ActiveSheet.Range("B" & i) & " \\" & ActiveSheet.Range("C" & i)  
    Print #datnr, strtemp
    Close #datnr
    i = i + 1
Loop
End Sub

MfG
Mitglied: Forencamper
Forencamper 13.09.2006 um 08:42:02 Uhr
Goto Top
thx,

funktioniert so!
Mitglied: Forencamper
Forencamper 13.09.2006 um 09:09:41 Uhr
Goto Top
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?
Mitglied: Biber
Biber 13.09.2006 um 09:24:10 Uhr
Goto Top
Moin Forencamper,

sinngemäß so:
Sub makebat()
Dim datnr%, strtemp$, i%
i = 1
Do Until ActiveSheet.Range("A" & i).Value = ""  
    datnr = FreeFile
    Open "c:\" & ActiveSheet.Range("A" & i) & ".bat" For Output As #datnr {{comment_single_line_double_slash:0}} 
    strtemp = "%logonserver%\netlogon\tools\con2prt.exe " & ActiveSheet.Range("D" & i) & " \\" & ActiveSheet.Range("B" & i) & " \\" & ActiveSheet.Range("C" & i)  
    if (ActiveSheet.Range("A" & i).Value = ActiveSheet.Range("A" & i+1).Value ) then  
       i = i +1 
       strtemp = "%logonserver%\netlogon\tools\con2prt.exe " & ActiveSheet.Range("D" & i) & " \\" & ActiveSheet.Range("B" & i) & " \\" & ActiveSheet.Range("C" & i)  
    end if   
    Print #datnr, strtemp
    Close #datnr
    i = i + 1
Loop
End Sub

Aber meinen Einwand oben hast Du auch zur Kenntnis genommen?

Gruß
Biber
Mitglied: Forencamper
Forencamper 13.09.2006 um 09:30:47 Uhr
Goto Top
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 face-confused
sin 400 Clients un den Aufwand könnte man sich echt ersparen....

probier es jetzt gleich mal aus face-wink
Mitglied: Biber
Biber 13.09.2006 um 09:45:09 Uhr
Goto Top
ein File haben müssen - ich versteh es auch nicht warum face-confused
sin 400 Clients un den Aufwand könnte man sich echt ersparen....

Sag es nicht uns... sag es den Vorgebern... face-wink
Mitglied: Forencamper
Forencamper 13.09.2006 um 09:52:27 Uhr
Goto Top
funktioniert so leider nicht, es nimmt mir immer nur den letzten von mehreren Datensätzen mit gleichem PC namen.... face-sad
Mitglied: Biber
Biber 13.09.2006 um 10:06:11 Uhr
Goto Top
ja, hast recht... ich sollte erstmal Kaffee trinken... face-sad

...
    strtemp = strtemp & vbCRLF & "%logonserver%\netlogon\tools\con2prt.exe " & .....  

Sorry
Biber