2013-11-17 1 views
2

В Windows 7 можно искать каталоги для файла или шаблона, но идти только в «n» уровнях глубоко?Поиск в каталоге Windows для файла, только «n» уровней в глубине от командной строки

Я не могу установить любые внешние инструменты

Командование Dir/с, кажется, идут все уровни, которые могут существовать. Я хочу ограничить его только «n» (3 или 4) уровнями, но не смог найти этого.

ответ

0

К сожалению, нет. Параметры командной строки по умолчанию не включают эту опцию.

+0

Спасибо. Есть ли другие команды, которые могут быть объединены с этим, чтобы создать файл .bat, который позволит мне это сделать? – adbdkb

+0

Может быть, 'tree' вместе с' grep' может помочь. Однако grep недоступен по умолчанию для систем Windows. – PMF

2

Да. Я написал пакетный файл, чтобы сделать это:

@echo off 
setlocal 
set currentLevel=0 
set maxLevel=%2 
if not defined maxLevel set maxLevel=1 

:procFolder 
pushd %1 2>nul || exit /b 
if %currentLevel% lss %maxLevel% (
    for /d %%F in (*) do (
    echo %%~fF 
    set /a currentLevel+=1 
    call :procFolder "%%F" 
    set /a currentLevel-=1 
) 
) 
popd 

Это будет отображать каталоги произвольно глубоко.

Использование: list.bat "Строка поиска" [номер]

Это будет искать строку [число] уровней в глубину. (Это включает в себя текущий уровень, поэтому 2 будет искать текущий каталог и один уровень глубже)

+0

Привет, я пробовал его как «list.bat java 3» и «list.bat .java 3», но я не получаю никакого вывода, и скрипт выходит из него - он возвращается в командную строку. У меня есть .java-файлы на уровне 0, 1 и 2 (и глубже, но тестировалось с 2 или 3). – adbdkb

+0

Просто понял, что скрипт перемещается по каталогам и что я должен добавить логику для проверки файла с определенным расширением или имя файла, содержащего заданную строку – adbdkb

 Смежные вопросы

  • Нет связанных вопросов^_^