Показать полную графическую версию : [решено] Поиск файла, значения в файле и создания для них переменных
Добрый день.
Нужна помощь в написании следующего скрипта:
1. Необходимо найти на ПК файл с названием cspwork.txt, путь к этому файлу занести в переменную %home%
2. В этом файле несколько строк различного содержания, нужно найти строку в файле с содержанием "PATH=C:\CSP\test" и все содержимое данной строки, что стоит после PATH= занести в переменную %path1% (C:\CSP\test)
3. Удалить созданные переменные.
Помогите пожалуйста, спасибо!
popoves, что Вы уже сделали, и что у Вас не получается?
Получилось следующее:
:: присваиваем результату поиска пути к cspwork.txt значение переменной %home%
For /F "tokens=*" %%i in ('dir /b /s /a -d C:\cspwork.txt') do set home=%%i
:: присваиваем переменной %path1% значение из файла после PATH=
For /F "eol=; tokens=1* delims==" %%i In (%home%) Do Set %%i=%%j
PATH=%path1%
но почему-то не работает, с удалением переменных пока не разобрался, и хочется чтобы поиск осуществлялся на всех локальных дисках.
Еще вопрос, как можно скрипт 2-го пункта:
"For /F "eol=; tokens=1* delims==" %%i In (%home%) Do Set %%i=%%j
PATH=%path1%" (ну или подобный/исправленный, этот пока не работает)
запустить не из BAT-файла, а из командной строки, набирая в одну строку?
Все разобрался, я ошибся в одной строчке, поэтому не работало.
В итоге BAT:
:: присваиваем результату поиска пути к cspwork.txt значение переменной %home%
For /F "tokens=*" %%i in ('dir /b /s /a -d C:\cspwork.txt') do set home=%%i
:: присваиваем переменной %path1% значение из файла после PATH=
For /F "eol=; tokens=1* delims==" %%i In (%home%) Do Set %%i=%%j
PATH=%path1%
Из командной строки:
For /F "tokens=*" %i in ('dir /b /s /a -d C:\cspwork.txt') do set home=%i
For /F "eol=; tokens=1* delims==" %i In (%home%) Do Set %i=%j; PATH=%path1%
Последний вопрос: Данные переменные, как я понял, создаются на время одной cmd сессии, т.е. после закрытия bat-файла или командной строки (во втором случае), эти переменные недоступны. Как можно сделать их доступными независимо от закрытия сессии, т.е. на определенный промежуток времени, или как-то в реестре (системе) навсегда зарегистрировать, а потом удалить?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.