Jeśli chcesz po prostu do listy podkatalogów aktualnego katalogu:
dir /ad /b
Jeśli jesteś w innym katalogu, można po prostu zrobić:
dir c:\temp /ad /b
/ad
oznacza wykaz wszystkich elementy z atrybutem "katalog" i /b
to goły format
Aktualizacja:
jak Bill skomentował poniżej, można iteracyjne nad wyjściem z cmd dir i ustawić zmienną środowiskową. Pułapka polega na tym, że jeśli istnieje więcej niż jeden podfolder, nie będziesz wiedział, który z nich będzie "ostatni". Oto przykład, który nakazuje katalogi wg nazwy (/ o) i ustawiając zmienną środowiskową MY_ENV_VAR do nazwy ostatniego podfolderu:
for /f "delims=" %%a in ('dir "c:\temp" /on /ad /b') do @set MY_ENV_VAR=%%a
Tak na marginesie, jeśli masz zamiar to robić znacznie więcej programowanie skryptów , możesz zainwestować trochę czasu w pewne podstawy PowerShell, które dają ci znacznie więcej kontroli programowej.
Get-ChildItem | where {$_.PSIsContainer}
znajdę skrypty wsadowe być frustrujące pracować po pewnym czasie.
mogę uzyskać nazwę, by tam być jakiś sposób, aby zapisać to w zmiennej? – emochoco
Tak. - dla/f "delims =" %% a in ("dir" c: \ temp "/ ad/b ') do @set DIRNAME = %% a - Uwagi: 1) Jeśli istnieje więcej niż jedna nazwa katalogu , tylko ostatnia zostanie ustawiona w zmiennej DIRNAME. 2) Jeśli wpisujesz polecenie w wierszu poleceń cmd.exe, użyj% a zamiast %% a (dwa% do użycia w skryptach wsadowych, jeden% przy wpisywaniu w wierszu poleceń). –
Dzięki, to działa! – emochoco