henner
Goto Top

Mehre Batchdatein erstellen aus Excelliste

Hallo ich arbeite in einer IT-Abteilung in einem Verlag und bin neu hierface-smile Hab auch gleich eine dringende Frage.

Ich soll 150 Batchdateien erstellen für unsere neuen Rechner. Die Batchdatei soll den Wake on Lane befehl ausführen und sieht so aus für unsere alten Rechner

@echo OFF
wol.exe XX:XX:XX:XX:XX:XX
ECHO WOL ausgefuehrt!

Der Dateiname ist immer wol-Rechnername.bat

Ich habe eine Excelliste die sieht so aus :

Spalte 1 Spalte 2
Rechnername MAC-Adresse


In der Exceltabelle sind alle Rechner für die ich eine Batchdatei erstellen soll aufgeschlüsselt.


Gibt es eine Möglichkeit aus dieser Exceltabelle automatisch die ganzen Batchdateien für die einzelnen Rechner zu erstellen und gleich mit dem richtigen Dateinamen zuversehen?

Wäre eine Große Hilfe da ich sonst alle per Hand erstellen müsste.


Danke schonmalface-smile

Content-Key: 168380

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

Ausgedruckt am: 28.03.2024 um 23:03 Uhr

Mitglied: Nagus
Nagus 21.06.2011 um 11:41:45 Uhr
Goto Top
Moin,
das geht doch auch anders:
1. die excel Liste als Textdatei speichern und am besten vorher noch ein Trennzeichen einführen (Als extra Spalte, bspw ein ; )
2. Über eine For-Schleife alle Mac Adressen ansprechen aus einer Batch-Datei heraus

so in der Art:

for /F "delims=;  tokens=1,2 " %%i  in (Datei.txt) do wol.exe %%j  

Gruß
Nagus
Mitglied: bastla
bastla 21.06.2011 um 11:49:27 Uhr
Goto Top
... und falls jeder Rechner einzeln angesprochen werden soll, etwa so (ungetestet):
@for /f "tokens=2 delims=;" %%i in ('findstr /i %1 "D:\Datei.txt"') do @(wol %%i && echo WOL %~1 ausgeführt)
Aufzurufen wäre der Batch (zB "Wecke.cmd") dann mit Übergabe des Rechnernamens als Parameter, also etwa:
Wecke Rechner57
Falls aber tatsächlich jeweils eine Batch-Datei entstehen soll, dann etwa (weiterhin ungetestet face-wink):
@echo off & setlocal
for /f "usebackq tokens=1-2 delims=;" %%i in ("D:\Datei.txt") do (  
    echo @echo off
    echo wol %%j
    echo WOL ausgeführt
)>D:\wol-%%i.cmd
Grüße
bastla

[Edit] @Friemler: Woher soll ich wissen, ob Zeile 6 funktioniert - ist ja "ungetestet" ... face-wink [/Edit]

[Edit2] ... aber ich gehe davon aus, dass das Ergebnis (bis auf den Umlaut) zufriedenstellend sein wird. [/Edit2]
Mitglied: Friemler
Friemler 21.06.2011 um 11:54:47 Uhr
Goto Top
Hallo henner,

die Exceltabelle als CSV speichern, die Variablen InputFile und OutputPath im folgenden Script anpassen und starten.

@echo off

setlocal


set "InputFile=X:\Rechner.csv"  
set "OutputPath=X:\WOL-Scripte"  

for /f "usebackq delims=; tokens=1,2" %%a in ("%InputFile%") do (  
  > "%OutputPath%\%%a.cmd" echo @echo off  
  >>"%OutputPath%\%%a.cmd" echo wol.exe %%b  
  >>"%OutputPath%\%%a.cmd" echo echo WOL ausgefuehrt!  
)

Gruß
Friemler


[EDIT]
Zu langsam.

@bastla: Und Zeile 6 funktioniert?
[/EDIT]


[EDIT2]
@Friemler: Woher soll ich wissen, ob Zeile 6 funktioniert - ist ja "ungetestet" ... face-wink
Schelm! face-big-smile
[/EDIT2]
Mitglied: henner
henner 21.06.2011 um 12:24:47 Uhr
Goto Top
Vielen Dank an alle für die Antworten. Hab die Lösung von Friemler getestet und hat Super geklapptface-smile

Herzlichen Dank face-smile
Mitglied: pieh-ejdsch
pieh-ejdsch 21.06.2011 um 13:19:51 Uhr
Goto Top
Moin;

Zitat von Friemler:
@bastla: Und Zeile 6 funktioniert?
Zitat von bastla:
[Edit] @Friemler: Woher soll ich wissen, ob Zeile 6 funktioniert - ist ja "ungetestet" ... face-wink [/Edit]
Schelm! face-big-smile
[Edit2] ... aber ich gehe davon aus, dass das Ergebnis (bis auf den Umlaut) zufriedenstellend sein wird. [/Edit2]

hehehe face-big-smile
kann man das auch als EDIT des Monats Bezeichnen (oder Top ten EDIT)?

@Friemler die Schliessende Klammer ist ja nur die Zusammenfassung ZU einer Befehlszeile.
Wenn hinter der Klammer noch was angefügt wird gilt das ja auch für diese BefehlsZeile.
Kannst es ja auch so schreiben ungefähr
for /f "usebackq tokens=1-2 delims=;" %i in ("D:\Datei.txt") do 4>D:\wol-%i.cmd (echo @echo off&::...weiter&rem ende)>&4  

Gruß Phil
Mitglied: Friemler
Friemler 21.06.2011 um 13:56:11 Uhr
Goto Top
Moin Phil,

ja, ist mir dann auch aufgefallen. Mich hat halt erstmal die Laufvariable außerhalb der Klammer irritiert. Auf jeden Fall war's amüsant.

Gruß
Friemler
Mitglied: bastla
bastla 21.06.2011 um 14:27:35 Uhr
Goto Top
Hallo Friemler & PH!

Dass wir's an einem Dienstag noch mal so lustig haben würden ... face-big-smile

Grüße
bastla
Mitglied: Skyemugen
Skyemugen 21.06.2011 um 14:34:19 Uhr
Goto Top
Aloha bastla,

ich dachte Dienstags gilt einfach nur set /a Montag+=1

also ändert sich der Tag ja nicht face-wink

greetz André
Mitglied: bastla
bastla 21.06.2011 um 14:37:06 Uhr
Goto Top
Hallo Skyemugen!

Lass besser Biber diesen Ansatz nicht sehen ... face-wink

Grüße
bastla
Mitglied: Biber
Biber 21.06.2011 um 19:39:33 Uhr
Goto Top
Moin bastla,

Zitat von @bastla:
Lass besser Biber diesen Ansatz nicht sehen ... face-wink
Keine Angst, ich bekomme ja nicht alles mit... face-wink

Grüße
Biber