2013-03-28 11 views

Odpowiedz

3

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.

+0

mogę uzyskać nazwę, by tam być jakiś sposób, aby zapisać to w zmiennej? – emochoco

+2

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ń). –

+0

Dzięki, to działa! – emochoco

2

Spróbuj tego:

for /d /r "C:\temp" %%i in (*.*) do echo %%~i 
Powiązane problemy