2013-03-28 134 views
5

我有一个关于批处理文件的问题批量查找文件夹名称

所以这一个目录中,假设C:\ TEMP \ 我有两个项目,一个是文件夹,另一个文本文件名为“list.txt”

我将如何找到文件夹的名称?

感谢

回答

3

如果你只是想列出当前目录的子目录:

dir /ad /b 

如果你在其他目录,你可以这样做:

dir c:\temp /ad /b 

/ad意味着列表中的所有具有属性“目录”的项目,并且/b是裸露格式

更新:

像比尔下面评论,你可以遍历目录CMD的输出,并设置环境变量。这里的缺点是,如果有多个子文件夹,你将不知道哪一个将是“最后”。下面是订单减少的域名(/上)的目录为例,设置环境变量MY_ENV_VAR到最后一个子文件夹的名称:

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

顺便说一句,如果你打算做更多的脚本编程,您可能需要花费一些时间在一些PowerShell基础知识上,这会为您提供更多的程序控制。

Get-ChildItem | where {$_.PSIsContainer} 

我发现批处理脚本很令人沮丧,在一段时间后工作。

+0

我能得到的名字,会有保存这一个变量的方法吗? – emochoco

+2

是的。 - 对于/ f“delims =”%% a in('dir“c:\ temp”/ ad/b')do @set DIRNAME = %% a - 注意:1)如果有多个目录名,只有最后一个会在DIRNAME变量中设置。 2)如果在cmd.exe命令行键入,则使用%a而不是%% a(在批处理脚本中使用2%,在命令行键入时使用1%)。 –

+0

谢谢,它的工作原理! – emochoco

2

试试这个:

for /d /r "C:\temp" %%i in (*.*) do echo %%~i 
相关问题