批量查找文件夹名称
问题描述:
答
如果你只是想列出当前目录的子目录:
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}
我发现批处理脚本很令人沮丧,在一段时间后工作。
答
试试这个:
for /d /r "C:\temp" %%i in (*.*) do echo %%~i
我能得到的名字,会有保存这一个变量的方法吗? – emochoco
是的。 - 对于/ f“delims =”%% a in('dir“c:\ temp”/ ad/b')do @set DIRNAME = %% a - 注意:1)如果有多个目录名,只有最后一个会在DIRNAME变量中设置。 2)如果在cmd.exe命令行键入,则使用%a而不是%% a(在批处理脚本中使用2%,在命令行键入时使用1%)。 –
谢谢,它的工作原理! – emochoco