zifona

Batch - Pfade von Dateien im Ordner in mehrere Variablen speichern

Hallo,
ich hätte folgendes Problem:

Ich habe einen Ordner, in diesem Ordner sind mehrere Dateien vorhanden. Diese Dateien sind ausfühbare Dateien. Ich möchte das in meinem Skript dieser Ordner nach diesen Dateien untersucht wird und demensprechend dem Nutzer als Auswahlmenü angezeigt wird. Dieser kann dann einer der Dateien auswählen und dementsprechend werden diese ausgeführt. Ich bin folgendermaßen vorgegangen:
Ich habe eine for Schleife geschrieben in der erstmal alle Datein durchsucht werden. Dabei möchte ich nichts anderes als das jeder einzelne Pfad der Dateien im Ordner in mehrere unterschiedliche Variablen gespeichert werden. Das bedeutet: Habe ich 3 Dateien, sollen 3 Variablen mit den jeweiligen Pfaden befüllt werden. Bei 4 Dateien sollen es dementprechend 4 Variablen sein. Hat jemand eine Idee? Ich habe bisher das hier umgesetzt:

for %%a in (C:\Dateien\*.*) do (
set var%counter%=%%a
echo !counter!
set /a counter+=1
)

Meine Zählervariable wird verwendet damit ich die unterschiedlichen Variablen erstellen kann. Zwar zählt dieser richtig hoch, jedoch werden nicht mehrere Varaiblen erstellt.

Ich bedanke mich schonmal vielmals für die Hilfe!
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 1732035887

Url: https://administrator.de/forum/batch-pfade-von-dateien-im-ordner-in-mehrere-variablen-speichern-1732035887.html

Ausgedruckt am: 09.05.2025 um 09:05 Uhr

149569
149569 17.01.2022 aktualisiert um 13:38:35 Uhr
Goto Top
@echo off & setlocal enabledelayedexpansion
set "counter=1"  
for %%a in ("C:\Dateien\*.*") do (  
    set "var!counter!=%%a"  
    set /a counter+=1
)
zifona
zifona 17.01.2022 um 14:02:16 Uhr
Goto Top
Vielen dank für die Antwort! Ich hatte da aber vielleicht noch eine Ergänzung:
Ich habe nun die Pfade in den einzelnen Variablen. Im Skript muss ich das jedoch immernoch statisch ausgeben:
Das heißt bei 3 Dateien z.b.:
echo %var1%
echo %var2%
echo %var3%

Ist es möglich diesen Vorgang ebenfalls dynamisch zu machen?
Vielleicht irgendwie mit dem counter und einer weiteren for schleife?
149569
Lösung 149569 17.01.2022 aktualisiert um 14:14:47 Uhr
Goto Top
Zitat von @zifona:
Ist es möglich diesen Vorgang ebenfalls dynamisch zu machen?
Ja. schreibe gebe das Menü gleich mit der obigen FOR-Schleife aus face-wink

@echo off &setlocal enabledelayedexpansion
cls
:menu
set "cnt=1"  
echo Verfuegbare Programme:
echo.
for %%a in ("C:\Dateien\*.*") do (  
	echo		[!cnt!] %%a
	set "prog!cnt!=%%a"  
	set /a cnt+=1
)
echo.
set /p "auswahl=Bitte Nummer eingeben:"  
echo.
echo Starte Programm '!prog%auswahl%!'  
start "" "!prog%auswahl%!"  
pause
goto menu
zifona
zifona 17.01.2022 um 15:11:58 Uhr
Goto Top
Das ist echt klasse! Vielen Dank für die Hilfe face-smile
zifona
zifona 18.01.2022 um 09:14:33 Uhr
Goto Top
Ist es eventueller Weise möglich bei der Ausgabe nur den Dateinamen auszugeben statt direkt den ganzen Pfad?