.bat-datei, die .bat-dateien erstellt, die wiederum Namen und Inhalte aus einer Excel-Tabelle bekommen sollen
Hallo zusammen, ich hoffe, ihr könnt mir weiterhelfen.
Ich habe folgendes Problem:
ich benötige eine batch-datei, die mir weitere batch-dateien erstellt. das hab ich soweit:
@echo off
set i=Haltung_100001
:START
echo text > %i%.bat
set /A i=i+1
IF %i%==10 (exit)
goto :START
jetzt sollen die dann erstellten bat-dateien aber bestimmte datei-namen und inhalte bekommen. diese habe ich in einer excel-tabelle.
kann mir jmd evtl. weiterhelfen? ich wäre über jeden tipp sehr froh.
danke im voraus (;
Gruß, sinep1337
Ich habe folgendes Problem:
ich benötige eine batch-datei, die mir weitere batch-dateien erstellt. das hab ich soweit:
@echo off
set i=Haltung_100001
:START
echo text > %i%.bat
set /A i=i+1
IF %i%==10 (exit)
goto :START
jetzt sollen die dann erstellten bat-dateien aber bestimmte datei-namen und inhalte bekommen. diese habe ich in einer excel-tabelle.
kann mir jmd evtl. weiterhelfen? ich wäre über jeden tipp sehr froh.
danke im voraus (;
Gruß, sinep1337
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 169282
Url: https://administrator.de/forum/bat-datei-die-bat-dateien-erstellt-die-wiederum-namen-und-inhalte-aus-einer-excel-tabelle-bekommen-sollen-169282.html
Ausgedruckt am: 22.04.2025 um 17:04 Uhr
19 Kommentare
Neuester Kommentar

moin,
zum Thema Entwicklung einer Batch Datei und dem führenden Doppelbefehl @echo off mag ich eigentlich nix mehr schreiben.
Die Frage ist, warum stehen die in einer excel Tabelle und müssen die da drin sein.
gruß
zum Thema Entwicklung einer Batch Datei und dem führenden Doppelbefehl @echo off mag ich eigentlich nix mehr schreiben.
Die Frage ist, warum stehen die in einer excel Tabelle und müssen die da drin sein.
- einmalige Aktion oder immer wiederkehrend?
- inhalte von xls kannst du nur mit VBS/VBA auslesen.
gruß
Hallo Sinep1337!
Deine Schleife ist ja nicht mehr nötig, wenn Du ohnehin alle zu erstellenden Dateien aus der CSV-Datei lesen kannst:
Damit wird für jede Datei aus der Liste (vielleicht verwendest Du besser zum Testen eine auf 5 Zeilen gekürzte CSV-Datei) eine Datei mit den zwei Zeilen "text" und "Pfad: <Pfad lt Liste>" erstellt.
Grüße
bastla
Deine Schleife ist ja nicht mehr nötig, wenn Du ohnehin alle zu erstellenden Dateien aus der CSV-Datei lesen kannst:
for /f "usebackq tokens=1-2 delims=;" %%i in ("C:\Dokumente und Einstellungen\hannauw\Desktop\muellmi\Neuer Ordner\liste_wichtig_neuesformat.csv") do (
echo text
echo Pfad: %%j
)>%%i.bat
Grüße
bastla
Hallo Sinep1337!
Um Dir einfach ansehen zu können, wie das funktioniert, verwende folgenden Batch:
Es müssten jetzt für jede Zeile der CSV Dateiname, Pfad und eine Leerzeile in der Konsole ausgegeben werden.
Grüße
bastla
woher weiß die bat-datei denn, aus welchen spalten sie den dateinamen und den dateiinhalt entnimmt?
Die Zerlegung jeder einzelnen Zeile der CSV-Datei erfolgt anhand des Trennzeichens ("delimiters") Semikolon - alles bis zum ersten Semikolon wird als Dateiname interpretiert, alles danach als Pfad ...Um Dir einfach ansehen zu können, wie das funktioniert, verwende folgenden Batch:
for /f "usebackq tokens=1-2 delims=;" %%i in ("C:\Dokumente und Einstellungen\hannauw\Desktop\muellmi\Neuer Ordner\liste_wichtig_neuesformat.csv") do (
echo Dateiname: %%i
echo Pfad: %%j
echo\
)
pause
Grüße
bastla
Aloha Sinep
bastla schrieb doch:
Mit dem letzten Code wird noch gar nichts erstellt, in seinem vorherigen Code schon eher aber das war wohl nicht wie gewollt von dir (?).
Wenn du direkt hinter der letzten Klammer noch ein
Erstellt werden die, sofern kein Pfad angegeben wird, in dem Verzeichnis, in dem die ausgeführte Batchdatei ihren Ursprung sucht.
greetz André
P.S.: Das Programm liest wirklich .bat-Dateien als Informationen ein?
leet
... dafür, dass du 1337 bist, stellst du aber gar lustige Fragenbastla schrieb doch:
Es müssten jetzt für jede Zeile der CSV Dateiname, Pfad und eine Leerzeile in der Konsole ausgegeben werden.
Mit dem letzten Code wird noch gar nichts erstellt, in seinem vorherigen Code schon eher aber das war wohl nicht wie gewollt von dir (?).
Wenn du direkt hinter der letzten Klammer noch ein
>Dateiname.bat
setzt, würde eine Datei erstellt werden, die Frage ist nun (oder bin ich blind): Wie sollen die Batchdateien benannt werden, die du somit erstellen lassen willst?Erstellt werden die, sofern kein Pfad angegeben wird, in dem Verzeichnis, in dem die ausgeführte Batchdatei ihren Ursprung sucht.
greetz André
P.S.: Das Programm liest wirklich .bat-Dateien als Informationen ein?

Servus,
irgendwie rätsel ich jetzt aber etwas....
irgendwie in einklang zu bringen mußt du die Hosen runter lassen und demos / Beipiele liefern.
btw: Wenn ich was baue, was allüberall laufen soll - versuche ich einen Standard Pfad zu nehmen, von daher ist dein "natürlich" woanders gelagert auch etwas komplexer zu verstehen.
Oder ich baue Variablen
irgendwie rätsel ich jetzt aber etwas....
Also ich hab in excel den pfad verkürzt. aber wenn ich die batch-datei benutze um die anderen batch-dateien zu erstellen funktioniert alles
naja ein auslesen und schreiben ist ja auch banane, dafür zu Sorgen, dass auch das richtige drin steht doch die Pflicht. wenn ich dann jedoch die neuen batch-dateien öffnen will, um den zielordner zu öffnen, steht da, dass der pfad ungültig ist etc.
um das irgendwie nachvollziehen zu können und um deine Zeiledas muss nämlich hinterher auf einem anderen pc funktionieren, wo die datein natürlich woanders gelagert sind.
irgendwie in einklang zu bringen mußt du die Hosen runter lassen und demos / Beipiele liefern.
btw: Wenn ich was baue, was allüberall laufen soll - versuche ich einen Standard Pfad zu nehmen, von daher ist dein "natürlich" woanders gelagert auch etwas komplexer zu verstehen.
Oder ich baue Variablen
if exist c:\test\job set "heim=c:\test\job"
if exist d:\test\job set "heim=d:\test\job"
if exist y:\test\job set "heim=y:\test\job"
echo das zeug liegt in %heim%
pause

so halbwegs....
als Demo
for /f "tokens=3 delims= " %a in ('dir haltung_100203 /AD ^|find "Verzeichnis von"') do echo %a
for /f "tokens=3 delims= " %%a in ('dir haltung_100203 /AD ^|find "Verzeichnis von"') do set "heim=%%a"
wäre jetzt ein ganz kr
Nochmal - den Inhalt und das, was gesucht werden soll - vorher /nachher macht doch mehr Sinn für uns - du weißt, was du willst und wir nicht.
Grüße (:
Hallo Sinep1337!
Vielleicht hilft es Dir ja, dass Du den Pfad der Batch-Datei mit
in eine Variable schreiben bzw mit
<code tyxpe="plain">cd /d "%~dp0"
deren Ordner zum aktuellen Ordner machen kannst ...
[Edit] @t-mo
Dann würde ich aber eher ein
[/Edit]
Grüße
bastla
Vielleicht hilft es Dir ja, dass Du den Pfad der Batch-Datei mit
set "Heim=%~dp0"
<code tyxpe="plain">cd /d "%~dp0"
deren Ordner zum aktuellen Ordner machen kannst ...
[Edit] @t-mo
Dann würde ich aber eher ein
dir /s /b /ad \Haltung_100203
verwenden ...[/Edit]
Grüße
bastla