zxmej10
Goto Top

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

Content-Key: 85750

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

Printed on: April 16, 2024 at 09:04 o'clock

Mitglied: 54487
54487 Apr 17, 2008 at 10:17:55 (UTC)
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
Member: zxmej10
zxmej10 Apr 18, 2008 at 07:34:09 (UTC)
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
Member: Biber
Biber Apr 18, 2008 at 08:15:24 (UTC)
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
Member: zxmej10
zxmej10 Apr 18, 2008 at 15:19:34 (UTC)
Goto Top
fun###iert 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
Member: Biber
Biber Apr 18, 2008 at 15:32:53 (UTC)
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