5

我有一个关于批处理文件的问题

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

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

谢谢

4

2 回答 2

4

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

dir /ad /b

如果您在另一个目录中,您可以这样做:

dir c:\temp /ad /b

/ad表示列出所有具有“目录”属性的项目,并且/b是裸格式

更新:

就像比尔在下面评论的那样,您可以遍历 dir cmd 的输出并设置环境变量。这里的陷阱是,如果有多个子文件夹,您将不知道哪个将是“最后一个”。这是一个按名称 (/on) 对目录进行排序并将环境变量 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}

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

于 2013-03-28T14:32:26.747 回答
2

试试这个:

for /d /r "C:\temp" %%i in (*.*) do echo %%~i
于 2013-03-28T14:33:30.180 回答