Поиск рекурсивного пакетного скриптинга - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь использовать оператор управления if exist для поиска по всей файловой системе, чтобы найти файл.

@echo off
echo Enter a file name......
set /P file=
set searchPath=C:\
set findit=%searchPath% and %file%

IF EXIST C:\*%%findit%% (
    echo file exist 
  )else (
    echo file does not exist
  )

Однако, если я ищу файл, который существует, я все равно получаюрезультатов поиска файла не существует.

Что я делаю не так?

1 Ответ

0 голосов
/ 28 июня 2019

Вы можете использовать Where /R "[dir]" /Q "Pattern"

Это позволяет вам искать путь к каталогу и возвращать все подходящие файлы.

IF Exist проверка не может проверить наличие глобуса файла

Но вам также необходимо указать, чтобы эта строка findit=%searchPath% and %file% задавала %Findit% равной строке "findit=C:\ and %file%"

Вот исправленная версия, которая, кажется, вам нужна:

@echo off
echo 
set /P "_File=Enter a file name......"
set "_SearchPath=C:\"

(
  Where /R "%_SearchPath%" /Q "%_File%" && (
    ECHO.File %_File% Exists!
  )
) || (
  ECHO.File %_File% Does Not Exist!
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...