Nếu bạn chỉ muốn liệt kê các thư mục con của thư mục hiện:
dir /ad /b
Nếu bạn đang ở trong thư mục khác, bạn chỉ có thể làm:
dir c:\temp /ad /b
/ad
nghĩa danh sách tất cả các mục có thuộc tính "thư mục" và /b
là định dạng trống
Cập nhật:
Giống như Bill đã nhận xét bên dưới, bạn có thể lặp qua đầu ra của lệnh cmd và đặt biến môi trường. Cạm bẫy ở đây là nếu có nhiều hơn một thư mục con, bạn sẽ không biết cái nào sẽ là "cuối cùng". Dưới đây là một ví dụ mà ra lệnh cho các thư mục theo tên (/ vào) và thiết lập môi trường MY_ENV_VAR biến để tên của thư mục con lần cuối:
for /f "delims=" %%a in ('dir "c:\temp" /on /ad /b') do @set MY_ENV_VAR=%%a
Là một sang một bên, nếu bạn đang đi để được làm lập trình kịch bản nhiều hơn nữa , bạn có thể muốn đầu tư một số thời gian vào một số thông tin cơ bản về PowerShell, điều này mang lại cho bạn nhiều quyền kiểm soát có lập trình hơn.
Get-ChildItem | where {$_.PSIsContainer}
Tôi thấy các tập lệnh theo lô sẽ bị làm phiền sau một thời gian.
Tôi có thể lấy tên, sẽ có thể là một cách để lưu trữ này trong một biến? – emochoco
Có. - cho/f "delims =" %% a in ('dir "c: \ temp"/ad/b') làm @set DIRNAME = %% a - Ghi chú: 1) Nếu có nhiều hơn một tên thư mục , chỉ cái cuối cùng sẽ được đặt trong biến DIRNAME. 2) Nếu gõ vào dòng lệnh cmd.exe, sử dụng% a thay vì %% a (hai% để sử dụng trong tập lệnh batch, một% khi gõ ở dòng lệnh). –
Cảm ơn, nó hoạt động! – emochoco