[batch] In den Ersten Ordner in einem Ordner navigieren

R

rawsome

Gast
Hallo,
Leider bin ich was batch-Programmierung angeht blutiger Anfänger, wenn man das überhaupt so nennen kann.
Nun habe ich folgendes Problem:
Im Ordner X befindet sich genau ein Ordner.
In diesen möchte ich nun entweder hinein navigieren oder besser dessen Namen in einer Variable speichern.
Allerdings weiß ich den Namen des Ordners in X nicht und das soll auch automatisiert ablaufen.
Zum besseren Verständnis noch Mal:
Wie kann ich den Namen des ersten (bzw. einzigen) Ordners oder Datei innerhalb eines anderen Ordners in einer Variable speichern?
Danke schon Mal für die Antworten!
 
Code:
@echo off
rem nötig für das Speichern veränderlicher Variablen in Schleifen; siehe Attribut-String
setlocal enabledelayedexpansion
rem durchlaufe alle Parameter und speichere sie je Durchlauf in %%i
for %%i in (%*) do (
    rem speichere Attribut-String von Verzeichnis/Datei %%i
    set attr=%%~ai
    rem vergleiche erste Stelle von Attribut-String mit "d"; bedeutet, dass %%i ein Verzeichnis ist
    if /i "!attr:~0,1!"=="d" (
       print %%i
    )
)

Eigentlich müsste noch ein Check für die Parameter rein ...
 
Das geht auch kürzer ... einfach "." durch Dein Verzeichnis ersetzen
Code:
@echo off
set verzeichnis="."
for /f %%a in ('dir %verzeichnis% /a:d /b') do set subDir=%%a
echo %subDir%

Wenn es mehrere Unterverzeichnisse gibt, dann müsstest Du beim "dir" eine Sortierung angeben, die definiert welches der erste Eintrag ist. Wenn es um Dateien geht, einfach das "/a:d" durch "/a:-d" ersetzen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: rawsome
Zurück
Oben