zxmej10

Namen von Unterordnern in Variablen speichern

Hallo zusammen,

Ich befinde mich in einem Verzeichnis welches ein einzelnes Unterverzeichnis enthält. Der Name dieses Unterverzeichnisses ist nicht bekannt bzwl variiert.
Frage: Wie speichere ich den Namen dieses einzelnen Unterverzeichnisses in die Variable %unterverz% ab?

Schwierigere Form: das Verzeichnis enthält nun mehrere Unterverzeichnisse, die in die Variablen %unterverz1%, unterverz2%, unterverz(...)% gespeichert werden sollen, und zwar in der Reihenfolge in der die Unterverzechnisse auf der Festplatte erstellt wurden (d.h. %unterverz1% enthält den Namen des zuerst, %unterverz(...)% des zuletzt erstellten Unterverzeichnisses)

Ich möchte wie gesagt nicht den gesamten Pfadnamen, sondern nur den Namen des Unterverzeichnisses abspeichern.
Der Name kann Leerzeichen und Punkte enthalten, die dementsprechend mit in die Varaiablen abgespeichert werden sollen.

dank Euch im voraus,
Oli
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 85750

Url: https://administrator.de/forum/namen-von-unterordnern-in-variablen-speichern-85750.html

Ausgedruckt am: 02.05.2025 um 04:05 Uhr

54487
54487 17.04.2008 um 12:17:55 Uhr
Goto Top
Hallo,
hier ein Ansatz:

@echo off & setlocal
set Verzeichnis=X:\Verzeichnis
cd /d %verzeichnis%

Set nr=0
for /f %%i in ('dir /b /AD /OG') do call :process %%i  
set unt
pause
goto :eof

:Process
set /a nr=%nr%+1
set unterverz%nr%=%1
zxmej10
zxmej10 18.04.2008 um 09:34:09 Uhr
Goto Top
cool... das ist schon (fast) die Loesung, vielen Dank....

einziges Problem: Die Unterverzeichnisnamen enthalten Leerzeichen, und die Verzeichnisnamen werden nur bis zu jenem gespeichert, d.h. aus dem Namen "dies ist unterverzeichnis nummer eins" speichert die Variable unterverz1 lediglich "dies".

Gibt es dafuer Abhilfe?

vielen Dank,
Oli
Biber
Biber 18.04.2008 um 10:15:24 Uhr
Goto Top
Moin zxmej10,

nachdenker war gestern etwas länger unterwegs, deshalb flicke ich mal provisorisch.
@echo off & setlocal
set "Verzeichnis=X:\Verzeichnis"  
PushD "%verzeichnis%"  

Set /a nr=0
FOR /F "delims=" %%i in ('dir /b /AD /OG') do call :process "%%i"  
PopD
set unt
pause
goto :eof

:Process
set /a nr=%nr%+1
set "unterverz%nr%=%~1"  

Grüße
Biber
zxmej10
zxmej10 18.04.2008 um 17:19:34 Uhr
Goto Top
funzioniert ganz hervorzueglich, sogar die zeitliche Sortierung.
vielen Dank!

...kleine Frage noch zum Schluss: welchen Schalter (?) muss ich aendern wenn ich alphabetisch sortieren will?

danke nochmal,
Oli
Biber
Biber 18.04.2008 um 17:32:53 Uhr
Goto Top
Moin zxmej10,

das sollte mit gehen mit:
dir /ad /on /b

Kannst Du ja mal am CMD-Prompt im betreffenden Verzeichnis gefahrlos testen.
Ebenso wie ein "Dir /?" in einem beliebigen Verzeichnis.

Grüße
Biber