批量查找目录中的文件夹名称

emo*_*oco 5 batch-file

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

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

我怎样才能找到该文件夹​​的名称?

谢谢

Joh*_*hnD 4

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

dir /ad /b
Run Code Online (Sandbox Code Playgroud)

如果您在另一个目录中,您可以执行以下操作:

dir c:\temp /ad /b
Run Code Online (Sandbox Code Playgroud)

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

更新:

就像 Bill 在下面评论的那样,您可以迭代 dir cmd 的输出并设置环境变量。这里的陷阱是,如果有多个子文件夹,您将不知道哪一个是“最后一个”。下面是一个按名称 (/on) 对目录进行排序并将环境变量 MY_ENV_VAR 设置为最后一个子文件夹的名称的示例:

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

顺便说一句,如果您要进行更多的脚本编程,您可能需要花一些时间学习一些 PowerShell 基础知识,这可以为您提供更多的编程控制。

Get-ChildItem | where {$_.PSIsContainer}
Run Code Online (Sandbox Code Playgroud)

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

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