-1

Введите текстовый файл со строками и найдите эти строки во всех папках/подпапках


У меня есть файл sample.txt, содержащий около 1000 строк, и у меня есть папка главной папки «adapt», которая содержит много файлов (файлы также присутствуют во многих подпапках, а типы файлов: .xml, .cpp, .h и еще немного) ,

Мне нужен пакетный скрипт, который будет принимать входные данные в виде файла sample.txt (который находится в той же директории, где находится пакетный скрипт) и либо просит пользователя выбрать папку/позволяет пользователю изменить путь к папке в коде (папке также присутствует в том же каталоге, что и пакетный файл), и внутри папок и подпапок во всех типах файлов, он должен искать каждую строку в файле sample.txt и, если найден, записывать «найдено» в файле result.txt/if не найден, напишите "not found" в файле result.txt.

Вот несколько строк в текстовом файле

пакет

server_i_0

P_70_d1

gi_m_70_d2

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

Код, который я пытаюсь изменить, приведен ниже.

@echo off
set OUTPUT_FILE="output.txt"
set /p "var1=Enter the String to Find: "

pushd %~p0
type NUL > %OUTPUT _FILE%.tmp
for /f "delims=" %%a in ('dir /B /S *.txt') do (
for /f "tokens=3 delims=:" %%c in ('find /i /c "%var1%" "%%a"') do (
    for /f "tokens=*" %%f in ('find /i "%var1%" "%%a"') do if %%c neq 0 echo         %%f
)
) >> "%OUTPUT_FILE%".tmp
move %OUTPUT_FILE%.tmp %OUTPUT_FILE% >nul 2>&1

POPD

Любая помощь со сценарием, пожалуйста.

Таким образом, у вас есть много папок, файлов, расширений и ключевых слов. Но ни кода ваших попыток, ни образца ожидаемого результата. (12 ноября '16 в 12:04)

Обратите внимание, что superuser.com не является бесплатным сервисом для написания скриптов/кодов. Если вы сообщите нам, что вы уже пробовали (включая скрипты/код, который вы уже используете) и где вы застряли, мы можем попытаться помочь с конкретными проблемами. Вам также следует прочитать Как задать хороший вопрос? . (12 ноября '16 в 13:23)

Я попытался изменить код, приведенный в приведенной выше ссылке, но это не сработало, все еще сталкиваясь с проблемами с этим. Я не хочу ставить не работающий код, ожидаемый вывод «строка найдена/не найдена» для каждой строки, которую я передаю из текстового файла для поиска в папках @LotPings (12 ноября '16 в 14:24 )

Я пытаюсь изменить код, указанный в приведенной выше ссылке, и я упомянул ожидаемый результат. Хотите, чтобы я записал не работающий код? Я пытаюсь изменить @DavidPostill (12 ноября '16 в 14:26 )

Ответов: 1

0

Вы можете проверить мой ответ на этот вопрос переполнения стека - я также вставил его ниже:

 @ECHO OFF REM This Script is written and modified by (c) Hackoo 2016 on 13/11/2016 Title Scan a folder and Search a string in multi-files by (c) Hackoo 2016 mode con cols=75 lines=2 Call :init Call :Browse4Folder "Choose source folder to scan" "c:\scripts" ::****************************************************************************************** Set "ROOT=%Location%" ::Does string have a trailing back slash ? if yes, so, we remove it ! IF %ROOT:~-1%==\ SET ROOT=%ROOT:~0,-1% SET "EXT=xml cpp hpp" SET "Count=0" Set "NewFolder2Copy=%userprofile%\Desktop\CopyFiles" Set "LogFile=%~dp0%~n0_Log.txt" SETLOCAL enabledelayedexpansion REM Iterates throw the files on this current folder and its subfolders. REM And Populate the array with existent files in this folder and its subfolders For /F %%i in ('Type "sample.txt"') do ( Set "Word2Search=%%i" For %%a in (%EXT%) Do ( Call :Scanning "!Word2Search!" "*.%%a" Call :PS_Sub 'information' 10 '"Scanning now for """!Word2Search!""" on """*.%%a""" . . . "' "'Please wait. . . Scan is in progress on all """*.%%a""" . . .'" 'info' 5 FOR /f "delims=" %%f IN ('dir /b /s "%ROOT%\*.%%a"') DO ( ( find /I "!Word2Search!" "%%f" >nul 2>">%2 ">nul 2>&1 ) Call :Explorer "%NewFolder2Copy%\" Goto:Display_Results ::***************************************************************************** 

Дополнить ответ

Server-Help.Ru - 2019. The website content is licensed CC BY NC SA 4.0. <|> Политика Конфиденциальности