1

Я не могу определить правильный набор команд в командной строке Windows FOR /? или bash ls, чтобы сделать это.

Следующий пакетный файл, который я написал, демонстрирует, чего я хочу, но я хотел бы знать, есть ли способ сделать это без пакетного файла.

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

Похоже, я должен быть в состоянии выполнить команду DIR с комбинацией /s /b и /ad, чтобы сделать это. Я готов фильтровать через grep или FIND, если мне нужно.

Очевидно, мне не нужно решение, которое требует сценария, поскольку у меня уже есть это, как показано выше.

Кроме того, Powershell может быть кандидатом, если это простая команда.

1 ответ1

0

Следующий пакетный файл, который я написал, демонстрирует, чего я хочу

но я хотел бы знать, есть ли способ сделать это без командного файла.

@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
    

  • Индекс AZ командной строки Windows CMD
  • Категоризованный список команд Windows CMD
  • echo - отображать сообщения на экране, включать или выключать отображение команд.
  • for /r - перебирать файлы (подпапки Recurse).
  • more - отображать вывод по одному экрану за раз. MORE может использоваться для запуска любой исполняемой команды (или пакетного файла) и приостановки вывода экрана по одному экрану за раз.
  • параметры - аргумент командной строки (или параметр) - это любое значение, переданное в пакетный скрипт.
  • перенаправление - операторы перенаправления.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .