2013-03-28 17 views
5

Ben toplu dosyalarıyla ilgili bir sorum var toplu bulmak klasör adı

Yani bu bir dizin içinde, en C diyelim dosya adı "list.txt"

Klasörün adını nasıl bulurum?

Teşekkür

cevap

3

sadece geçerli dizinin alt dizinleri listelemek isterseniz:

dir /ad /b 

başka dizinde ise tıpkı senin yapabilirsiniz:

dir c:\temp /ad /b 

/ad liste tüm demektir "dizin" özniteliği ve /b öğelerine sahip öğeler,

biçimindeki çıplak biçimdir

Güncelleme: Bill aşağıda yorumladı gibi

, sen dir cmd çıkışında üzerinde yineleme ve bir ortam değişkeni ayarlayabilirsiniz. Buradaki tuzak, birden fazla alt klasör varsa, hangisinin "son" olacağını bilmeyeceksiniz. Eğer çok daha komut programlama yapıyor olacak eğer, bir kenara olarak

for /f "delims=" %%a in ('dir "c:\temp" /on /ad /b') do @set MY_ENV_VAR=%%a 

: İşte bir isimle (/ üzerine) dizinleri sıralar örneği ve son alt klasör adını ortam değişkeni MY_ENV_VAR ayardır bazı PowerShell temellerinde biraz daha fazla yatırım yapmak isteyebilirsiniz, bu da size çok daha fazla programatik kontrol sağlar.

Get-ChildItem | where {$_.PSIsContainer} 

Bir süre sonra çalışmak için kesinti yapmak için toplu komut dosyaları buluyorum.

+0

bir değişkende saklamak için bir yol var olacağını, adını alabilirim? – emochoco

+2

Evet. - for/f "delims =" %% a in ('dir "c: \ temp"/ad/b') do @set DIRNAME = %% a - Notlar: 1) Birden fazla dizin adı varsa Sadece sonuncu DIRNAME değişkeninde ayarlanacak. 2) cmd.exe komut satırında yazıyorsanız, %% a yerine% a kullanın (toplu iş komutunda kullanmak için iki%, komut satırına yazarken% 1). –

+0

Teşekkürler, işe yarıyor! – emochoco

2

bu deneyin:

for /d /r "C:\temp" %%i in (*.*) do echo %%~i 
İlgili konular