Zahlen aus txt datei an befehl in bat. datei anhängen
Hallo zusammen,
ich habe ein kleines Problem, und da ich nun bei weiten kein Programmmierer bin auch keinen richtigen Ansatzpunkt.
Momentan habe ich eine kleine Batch Datei mit foldendem Inhalt
@echo off
if exist %USBswitchCmd.exe goto existiert
echo Datei USBswitchCmd.exe nicht gefunden!
goto ENDE
:existiert
echo die Datei USBswitchCmd.exe ist OK !
:ENDE
if exist %USBaccess.dll goto existiert1
echo Datei USBaccess.dll nicht gefunden!
goto ENDE
:existiert1
echo die Datei USBaccess.dll ist OK !
:ENDE
if exist %zeiten.txt goto existiert2
echo Datei zeiten.txt nicht gefunden!
goto ENDE
:existiert2
echo die Datei zeiten.txt ist OK !
:ENDE
echo.
echo.
:START
echo Ausführen jetzt mit einer beliebigen Taste !
echo.
echo.
pause
USBswitchCMD -p 1 2 3 4
Diese Datei Prüft am anfang ja das vorhanden sein von 3 weitren Dateien ( USBswitchCmd.exe,USBaccess.dll und zeiten.txt )
danach eine PAUSE
dann wird die Datei "USBswitchCMD" mit den Befehlen -p 1 2 3 4 ausgeführt.
Zur Erkärung :
Die "USBswitchCMD" ist eine Datei welchen eine kleine Schaltbox über USB in den Zeiten 1 2 3 und 4 sekunden immer ein - und ausschaltet. Die Zahlen sind willkürlich gewählt und können nach bedarf geändert werden.
Soweit funtzt das ganze.
Nun zum Problem.
Ich müchte die Zeiten ( 1 2 3 4 ..... ) in eine externe Datei namens " zeiten.txt" auslagern , da das kleine Tool auch von anderen umgeschreiben werden muss, diese leute jedoch nicht in der Batch Datei selbst herumschreiben sollen sondern nur in der "Zeiten.txt" .
Die Zahlen aus der "Zeiten.txt" müssten also an den Befehl "USBswitchCMD -p" angehängt und abgearbeitet werden. Die Abarbeitung selbst übernimmt ja die "USBswitchCMD.exe"
Nach der Abarbeitung wird das Programm geschlossen und fertig.
So .... kleines Problem ... -> lange erklärung
Ich hoffe jemand kann damit was anfangen und hat nen Lösungsvorschlag, Schon mal Danke im Voraus.
Grüße
Rene
ich habe ein kleines Problem, und da ich nun bei weiten kein Programmmierer bin auch keinen richtigen Ansatzpunkt.
Momentan habe ich eine kleine Batch Datei mit foldendem Inhalt
@echo off
if exist %USBswitchCmd.exe goto existiert
echo Datei USBswitchCmd.exe nicht gefunden!
goto ENDE
:existiert
echo die Datei USBswitchCmd.exe ist OK !
:ENDE
if exist %USBaccess.dll goto existiert1
echo Datei USBaccess.dll nicht gefunden!
goto ENDE
:existiert1
echo die Datei USBaccess.dll ist OK !
:ENDE
if exist %zeiten.txt goto existiert2
echo Datei zeiten.txt nicht gefunden!
goto ENDE
:existiert2
echo die Datei zeiten.txt ist OK !
:ENDE
echo.
echo.
:START
echo Ausführen jetzt mit einer beliebigen Taste !
echo.
echo.
pause
USBswitchCMD -p 1 2 3 4
Diese Datei Prüft am anfang ja das vorhanden sein von 3 weitren Dateien ( USBswitchCmd.exe,USBaccess.dll und zeiten.txt )
danach eine PAUSE
dann wird die Datei "USBswitchCMD" mit den Befehlen -p 1 2 3 4 ausgeführt.
Zur Erkärung :
Die "USBswitchCMD" ist eine Datei welchen eine kleine Schaltbox über USB in den Zeiten 1 2 3 und 4 sekunden immer ein - und ausschaltet. Die Zahlen sind willkürlich gewählt und können nach bedarf geändert werden.
Soweit funtzt das ganze.
Nun zum Problem.
Ich müchte die Zeiten ( 1 2 3 4 ..... ) in eine externe Datei namens " zeiten.txt" auslagern , da das kleine Tool auch von anderen umgeschreiben werden muss, diese leute jedoch nicht in der Batch Datei selbst herumschreiben sollen sondern nur in der "Zeiten.txt" .
Die Zahlen aus der "Zeiten.txt" müssten also an den Befehl "USBswitchCMD -p" angehängt und abgearbeitet werden. Die Abarbeitung selbst übernimmt ja die "USBswitchCMD.exe"
Nach der Abarbeitung wird das Programm geschlossen und fertig.
So .... kleines Problem ... -> lange erklärung
Ich hoffe jemand kann damit was anfangen und hat nen Lösungsvorschlag, Schon mal Danke im Voraus.
Grüße
Rene
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 133616
Url: https://administrator.de/forum/zahlen-aus-txt-datei-an-befehl-in-bat-datei-anhaengen-133616.html
Ausgedruckt am: 27.04.2025 um 16:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo rjung1 und willkommen im Forum!
Wenn die Datei "Zeiten.txt" alle Werte in der ersten Zeile enthält (diese Zeile also so:
aussieht), könntest Du die Zeile direkt in die Variable "%Zeiten%" einlesen und damit dann "USBSwitchCMD" aufrufen:
Etwas kompakter (und leichter um zusätzliche Dateien erweiterbar) könnte der gesamte Batch dann (ungetestet) etwa so aussehen:
Grüße
bastla
[Edit] @timobeil
Sorry - mein Batch ist dafür aber auch ungetestet ...
[/Edit]
Wenn die Datei "Zeiten.txt" alle Werte in der ersten Zeile enthält (diese Zeile also so:
1 2 3 4
set /p Zeiten=<Zeiten.txt
USBswitchCMD -p %Zeiten%
@echo off & setlocal
set "Dateien=USBswitchCmd.exe USBaccess.dll zeiten.txt"
set "Fehler="
for %%i in (%Dateien%) do if exist "%%~i" (
echo Die Datei "%%~i" ist OK !
) else (
echo Datei "%%~i" nicht gefunden!
set Fehler=True
)
if defined Fehler goto :eof
echo.
echo.
:START
echo Ausführen jetzt mit einer beliebigen Taste !
echo.
echo.
pause
set "Zeiten="
set /p Zeiten=<Zeiten.txt
if not defined Zeiten echo "Keine Zeiten eingetragen!" & goto :eof
USBswitchCMD -p %Zeiten%
bastla
[Edit] @timobeil
Sorry - mein Batch ist dafür aber auch ungetestet ...
[/Edit]

Servus & willkommen.
Schau dir mal die Formatierungshilfe an - oder "zitiere" meinen Beitrag.
Die Code Blöcke machen es einfacher
das meinen lieblingskommentar dazu mit dem echo off - lass ich mal
Als Grundlage könntest du z.b
Echo ohne Zeilenumbruch und ähnliche Spielereien benutzen.
und um deinen Ansatz etwas aufzuräumen...
du könntest aber auch den ganzen kram nicht einfacher machen und "nur" set /p benutzen, wenn die User eh die zeiten ändern sollen und ein Return vom laufen abgeschickt werden soll.
Gruß
edit @bastla - kaum schludere ich mal nicht so schlimm, kommst du
*gg*
und das sieht auch mal wieder so aus, als ob du das schon getstet hast - ich hab schonmal die Sprungmarke ende verpasst
edit² und mindestens ein t - ein Zeilenumbruch waren noch drin - die da nicht hingehören.
Das mit dem Type kann mann auch so verwenden, dass entweder die User vorm abschicken sehen, welche Zeiten sie da starten, oder um ein Log file zu pflegen.
Schau dir mal die Formatierungshilfe an - oder "zitiere" meinen Beitrag.
Die Code Blöcke machen es einfacher
das meinen lieblingskommentar dazu mit dem echo off - lass ich mal
Als Grundlage könntest du z.b
Echo ohne Zeilenumbruch und ähnliche Spielereien benutzen.
set /p =USBswitchCMD -p >startit.cmd<nul &type zeiten.txt>>startit.cmd
start /wait "USBswitchCMD" startit.cmd
und um deinen Ansatz etwas aufzuräumen...
:@echo off
cls
:check
for %%a in (USBswitchCmd.exe USBaccess.dll zeiten.txt) do if exist %%a echo %%a existiert) && goto start
for %%b in (USBswitchCmd.exe USBaccess.dll zeiten.txt) do if not exist %%b echo %%a existiert nicht)
pause
goto ENDE
:START
echo Ausführen jetzt mit einer beliebigen Taste !
echo.
echo.
pause
set /p =USBswitchCMD -p >startit.cmd<nul &type zeiten.txt>>startit.cmd
start /wait "USBswitchCMD" startit.cmd
:ende
du könntest aber auch den ganzen kram nicht einfacher machen und "nur" set /p benutzen, wenn die User eh die zeiten ändern sollen und ein Return vom laufen abgeschickt werden soll.
Gruß
edit @bastla - kaum schludere ich mal nicht so schlimm, kommst du
und das sieht auch mal wieder so aus, als ob du das schon getstet hast - ich hab schonmal die Sprungmarke ende verpasst
edit² und mindestens ein t - ein Zeilenumbruch waren noch drin - die da nicht hingehören.
Das mit dem Type kann mann auch so verwenden, dass entweder die User vorm abschicken sehen, welche Zeiten sie da starten, oder um ein Log file zu pflegen.