spikeee
Goto Top

Variabler Dateiname innerhalb einer Batchdatei

Hallo Liebe Gemeinde!

Vielleicht eine relativ simpel zu lösende Aufgabe, jedoch tu ich mich da grad ein wenig schwer, da ich von Batch Dateien nicht allzu viel Ahnung habe.

Es geht darum, eine Adress Datei mittels einer vorgefertigten .exe Datei umzuwandeln. Das klappt mittels Konsole wunderbar. Jedoch will ich den Vorgang vereinfachen und wollte hierfür eine Batch Datei schreiben die das ganze automatisiert.

Der gesamte Befehl lautet:

start R:\Schnittstellen\bin\ProBauGStrasse.exe R:\Schnittstellen\ProBaug\*adress.txt R:\Schnittstellen\ProBaug\ R:\Schnittstellen\bin\strassen.csv

Hierbei wird alles korrekt ausgeführt bis auf den Teil "*adress". Das Problem ist, dass die Datei Immer einen anderen Namen hat, der sich sowohl aus Datum und Uhrzeit zusammensetzt. Jedoch IMMER auf adress.txt endet. Wenn ich den Dateinamen ausschreibe klappt die Batchdatei ohne jegliche Probleme, aber es wäre mir lieber wenn ich dies Variabel halten könnte.

Wie gesagt, wahrscheinlich für einige hier eine recht simple Frage, auf die ich aber leider bislang keine Antwort finden konnte.

Danke im Voraus!

Spikeee

Content-Key: 264356

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

Ausgedruckt am: 29.03.2024 um 08:03 Uhr

Mitglied: joehuaba
Lösung joehuaba 24.02.2015 aktualisiert um 15:52:16 Uhr
Goto Top
Lass dir die Datei erst auslesen mit deinem Batchscript:

For /F %%i in ('dir /B *adress.txt') do set Datei=%%~ni  

Jetzt steht der Dateinamen in der Variable "Datei".

Dann kannst du mit deiner Variable weiterarbeiten face-smile
Mitglied: Spikeee
Spikeee 24.02.2015 um 11:28:39 Uhr
Goto Top
Danke joehuaba!
Diesen Befehl hatte ich auch eben gefunden, jedoch habe ich die richtige Verwendung wohl noch nicht raus.

Meine Datei sieht derzeit folgendermaßen aus:

start R:\Schnittstellen\bin\ProBauGStrasse.exe
For /F %%i in ('dir /B *adress.txt') do set Datei=%%~ni R:\Schnittstellen\ProBaug\Datei
R:\Schnittstellen\ProBaug\
R:\Schnittstellen\bin\strassen.csv

habe optional noch %Datei% und %Datei%.txt probiert, aber egal wie ichs drehe und wende es funktioniert nicht :/ weitere Tipps? face-smile
Mitglied: joehuaba
Lösung joehuaba 24.02.2015 aktualisiert um 15:52:34 Uhr
Goto Top
Du kannst natürlich erst einmal prüfen mit "echo %Datei%" ob er deinen gewünschten Dateinamen ausgibt,
bzw. ob die Variable das richtige beinhaltet.

Wenn das klappt ist das schon einmal die halbe Miete face-smile

Gehen wir vom Besten aus, dann müsste dein Code ca. so aussehen:

@echo off
For /F %%i in ('dir /B *adress.txt') do set Datei=%%~ni  
start R:\Schnittstellen\bin\ProBauGStrasse.exe R:\Schnittstellen\ProBaug\%datei% R:\Schnittstellen\ProBaug\ R:\Schnittstellen\bin\strassen.csv
Exit

Leider bin ich kein Batch-Spezialist, hoffe ich kann dir trotzdem weiterhelfen face-smile
Mitglied: Spikeee
Spikeee 24.02.2015 um 15:53:25 Uhr
Goto Top
Danke! Hat leider nicht ganz so geklappt aber nach langem rumspielen und ein wenig rumgegoogle hat jetzt folgender Code zum Erfolg geführt face-smile

For %%i in (*adress.txt) do set Datei=%%i
start R:\Schnittstellen\bin\ProBauGStrasse.exe R:\Schnittstellen\ProBaug\%Datei% R:\Schnittstellen\ProBaug\ R:\Schnittstellen\bin\strassen.csv

Danke für die Hilfe face-smile
Mitglied: joehuaba
joehuaba 24.02.2015 um 15:57:04 Uhr
Goto Top
Freut mich dass ich dir helfen konnte face-smile