Войти

Показать полную графическую версию : [решено] Помогите решить задачу


BobiBob
22-12-2019, 16:38
Привет всем.

Помогите решить задачу. Все перепробывал. Знаний не хватает разобраться самому.

Задача:
1. Поиск в подпапках всех файлов *.txt
2. По очереди поиск в каждом найденном файле строки с заданным именем и вывод этой строки в переменную

Сделал .bat, но он не работает. Скидывает на "Режим вывода команд на экран (ECHO) отключен."


@echo off
setlocal enableextensions enabledelayedexpansion

for /f "delims=" %%a in ('dir /b /s /a-d "*.txt"') do (
For /F "tokens=1* delims==" %%i In (%%a) Do Set %%i=%%j

echo %Stroka%
)
)

megaloman
22-12-2019, 17:07
в каждом найденном файле строки с заданным именем »Как понять? Как это имя задано? И где его искать: в имени txt-файла или в содержимом?Скидывает на "Режим вывода команд на экран (ECHO) отключен." »А Вы что-то иное хотели? :lol: Вы где-нибудь определили переменную %Stroka% чтобы увидет её содержимое?
Попробуйте проделать findstr /? >D:\findstr.txt и почитать в файле D:\findstr.txt хелп к этой команде. Возможно там путь к решению.

alpap
22-12-2019, 17:54
megaloman,
ну почему
Вы где-нибудь определили переменную %Stroka% чтобы увидет её содержимое »
вполне имеет место быть согласно
Set %%i=%%j »
т.е. в файле может быть строка:
Stroka=Значение
и вывод был бы очевидным, но только если бы в 7й строке было записано как и подобает для ...enabledelayedexpansion

...
echo !Stroka!
...

BobiBob
22-12-2019, 21:41
alpap »

Спасибо. Я столько времени потратил, чтобы встроить этот код в другой скрипт, что просто не заметил написанных % вместо !. Теперь работает.




© OSzone.net 2001-2012