我无法在 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
您可以通过命令行进行以下更改来执行此操作:
%%
用。。。来代替%
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
- Windows CMD 命令行的 AZ 索引
- Windows CMD 命令的分类列表
- 回声- 在屏幕上显示消息,打开或关闭命令回显。
- 对于/r- 循环遍历文件(递归子文件夹)。
- 更多的- 一次显示一屏输出。MORE 可用于运行任何可执行命令(或批处理文件)并一次暂停一屏输出。
- 参数- 命令行参数(或参数)是传递到批处理脚本的任何值。
- 重定向- 重定向运算符。