![]() |
Поиск файла, значения в файле и создания для них переменных
Добрый день.
Нужна помощь в написании следующего скрипта: 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-файла или командной строки (во втором случае), эти переменные недоступны. Как можно сделать их доступными независимо от закрытия сессии, т.е. на определенный промежуток времени, или как-то в реестре (системе) навсегда зарегистрировать, а потом удалить? |
Время: 10:50. |
Время: 10:50.
© OSzone.net 2001-