【问题标题】:cmd loop and output subfolder locationcmd循环和输出子文件夹位置
【发布时间】:2011-04-13 13:47:04
【问题描述】:

谁能告诉我如何设置一个可以在 Windows 中执行以下操作的 .bat 文件:

假设我有:c:\somefolder\,我从中运行 dostuff.bat,然后打印 c:\somefolder\ 中子文件夹的完整地址

例如:

c:\somefolder\sub1\subsub1\
c:\somefolder\sub1\subsub2\
c:\somefolder\sub1\subsub3\
c:\somefolder\sub2\subsub1\
...
...

如果有帮助的话,它只需要往下两层。

谢谢
卡尔

【问题讨论】:

    标签: loops batch-file cmd subdirectory


    【解决方案1】:

    您可以使用FOR /D 命令

    for /D %%A in ("C:\temp\*") do (
        echo %%A
        for /D %%2 in ("%%~A\*") do echo --- %%~2
    )
    

    【讨论】:

    • 嗯...%%2 这样的东西是否存在于批处理脚本中?你的意思是%%B吗?
    • @Andriy M:%%2 或 %%B 处理相同,几乎每个字符都可以用于此,甚至是百分号for %%%% in (test) do echo %%~%%
    • 哇,太好了。当我用完 52 个字母的变量时,我会尽量记住这一点。 :) 谢谢!
    【解决方案2】:

    您可以使用find命令的DOS端口:

    find . -maxdepth 2 -type d
    

    Download GNU utilities to get find.exe here.

    【讨论】:

    • +1,它解决了它作为一个班轮,但似乎有点矫枉过正使用/下载gnu utils只为此
    【解决方案3】:

    我认为,FOR 与选项 /D/R path 应该会给你想要的输出:

    FOR /R "C:\temp" /D %%A IN (*) ECHO %%A
    

    如果您特别希望输出最后包含\,请将其明确放在%%A 之后:

    ... ECHO %%A\
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多