如何获取目录树中每个 .git 子文件夹的完整路径列表?

如何获取目录树中每个 .git 子文件夹的完整路径列表?

我无法在 Windows 命令提示符中找出 FOR /? 或 bash ls 的正确命令集来执行此操作。

我编写的以下批处理文件演示了我想要的内容,但我想知道是否有办法在没有批处理文件的情况下完成它。

@echo off
for /r %%i in (.) do if %%~nxi==.git echo %%i

看来我应该能够发出一个 DIR 命令,结合使用 /s /b 和 /ad 来执行此操作。如果需要,我愿意通过 grep 或 FIND 进行过滤。

我显然不需要需要脚本的解决方案,因为我已经有了如上所示的脚本。

此外,只要它是一个简单的命令,Powershell 也可以作为候选者。

答案1

我编写的以下批处理文件演示了我想要的内容

但我想知道是否有办法不使用批处理文件来完成此操作。

@echo off
for /r %%i in (.) do if %%~nxi==.git echo %%i

您可以通过命令行进行以下更改来执行此操作:

  1. %%用。。。来代替%

  2. if用if`替换@以删除多余的输出

因此命令变成:

for /r %i in (.) do @if %~nxi==.git echo %i

如果输出超过一屏,您可以:

  • 将输出传输至more

    for /r %i in (.) do @if %~nxi==.git echo %i | more
    

或者:

  • 将输出重定向到文件并稍后检查。

    for /r %i in (.) do @if %~nxi==.git echo %i > output.txt
    more output.txt
    

相关内容