Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Найти файлы по маске и заменить в них строки

Ответить
Настройки темы
CMD/BAT - Найти файлы по маске и заменить в них строки

Аватара для hunk3r

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем привет.
Давно читаю форум и часто пользуюсь батниками, но ума не дам как дописать следующее:
Есть директория E:\Steam\userdata\ в ней множество др. директорий, в каждой из которых есть файл с именем sharedconfig.vdf

Мне необходимо в каждом найденном по имени "sharedconfig.vdf" файле заменить строку "cloudenabled" "1" на "cloudenabled" "0" (строка находится в рандомном месте как по вертикали файла, так и по горизонтали)
Начало простое:
Код: Выделить весь код
For /F %%i in ('"where /R E:\Steam\userdata\ "sharedconfig.vdf""') do (
Прошу, помогите закончить скрипт.

Отправлено: 18:54, 09-06-2018

 

Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


hunk3r, Хотелось бы потрогать файл руками - упакуйте пожалуйста и предоставьте.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:05, 09-06-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1171
Благодарности: 487

Профиль | Отправить PM | Цитировать


Цитата hunk3r:
Есть директория E:\Steam\userdata\ в ней множество др. директорий, в каждой из которых есть файл с именем sharedconfig.vdf
Мне необходимо в каждом найденном по имени "sharedconfig.vdf" файле заменить строку "cloudenabled" "1" на "cloudenabled" "0" (строка находится в рандомном месте как по вертикали файла, так и по горизонтали) »
В какой кодировке файлы?
powershell
script.ps1
Код: Выделить весь код
dir "E:\Steam\userdata\" -rec -inc 'sharedconfig.vdf'|%{
    (gc $_.fullname -enc utf8 -raw) -replace '(?<=\"cloudenabled\"\s*\")1(?=\")','0'|`
    set-content $_.fullname -enc utf8
}
для запуска:
run.bat
Код: Выделить весь код
@echo off
echo Выполняем...
powershell -ex bypass .\script.ps1
echo Готово.
pause

-------
scio me nihil scire. Ѫ


Последний раз редактировалось YuS_2, 09-06-2018 в 20:27.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:56, 09-06-2018 | #3


Аватара для hunk3r

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Кодировка 1251 как я понял.

Отправлено: 20:01, 09-06-2018 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
В какой кодировке файлы? »
Потому и требуем упаковать в архив и приложить. И кроме кодировки, там ещё может быть существенной такая радость механика, как тип конца строки (в трёх ипостасях).


Цитата hunk3r:
Кодировка 1251 как я понял. »
hunk3r, вот, чтобы Вам не гадать, а пишущим не заниматься ручным набором содержимого файла — делайте то, что просят: упакуйте файл в архив и приложите к сообщению.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:06, 09-06-2018 | #5


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1171
Благодарности: 487

Профиль | Отправить PM | Цитировать


Цитата hunk3r:
Кодировка 1251 как я понял. »
Так... вот выше правильно говорят - упакуйте и приложите, а там увидим
А пока, по Вашим данным, скрипт выше поправил...

Цитата Iska:
как тип конца строки (в трёх ипостасях) »
в варианте на powershell, это не столь важно...

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:12, 09-06-2018 | #6


Аватара для hunk3r

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: 7z sharedconfig.7z
(765 байт, 3 просмотров)

Прошу прощения, торопился) Вот.

Отправлено: 20:18, 09-06-2018 | #7


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1171
Благодарности: 487

Профиль | Отправить PM | Цитировать


Цитата hunk3r:
торопился »
Спешить не надо
Кодировка там UTF8.
Вернул кодировку в скрипте...

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:27, 09-06-2018 | #8


Аватара для hunk3r

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
s* »
Спасибо!)
Если я правильно понимаю, то \s*\ между кавычками - это любое количество пробелов?

Отправлено: 20:31, 09-06-2018 | #9


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1171
Благодарности: 487

Профиль | Отправить PM | Цитировать


Цитата hunk3r:
это любое количество пробелов? »
это ноль или более пробельных символов, а не только пробелов...

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:34, 09-06-2018 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Найти файлы по маске и заменить в них строки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Можно ли найти файлы созданные за сегодняшний день и дать отчет о них ufooo Скриптовые языки администрирования Windows 12 20-04-2016 01:49
CMD/BAT - Найти в подкаталогах файлы по маске и вывести в текст список тех, у которых первые 2 surgutfred Скриптовые языки администрирования Windows 2 27-01-2016 19:07
CMD/BAT - [решено] Отделить слово от строки по маске blackeangel Скриптовые языки администрирования Windows 2 11-11-2015 23:07
VBS/WSH/JS - [решено] Поиск строки по маске в txt файле и замена всей строки из InputBox ultrarare Скриптовые языки администрирования Windows 11 03-07-2013 14:37
CMD/BAT - [решено] Нужно найти все файлы *.log в папке dir и подпапках и заменить на файлы нулевой длины dclxvi Скриптовые языки администрирования Windows 4 04-07-2012 21:28




 
Переход