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-ID: 36745

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

Ausgedruckt am: 23.11.2024 um 05:11 Uhr

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
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
Forencamper
Forencamper 13.09.2006 um 08:42:02 Uhr
Goto Top
thx,

funktioniert so!
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?
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
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
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
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
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