![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Найти файлы по маске и заменить в них строки |
|
CMD/BAT - Найти файлы по маске и заменить в них строки
|
Новый участник Сообщения: 14 |
Всем привет.
Давно читаю форум и часто пользуюсь батниками, но ума не дам как дописать следующее: Есть директория E:\Steam\userdata\ в ней множество др. директорий, в каждой из которых есть файл с именем sharedconfig.vdf Мне необходимо в каждом найденном по имени "sharedconfig.vdf" файле заменить строку "cloudenabled" "1" на "cloudenabled" "0" (строка находится в рандомном месте как по вертикали файла, так и по горизонтали) Начало простое: Прошу, помогите закончить скрипт. |
|
Отправлено: 18:54, 09-06-2018 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Проверил, работает. Еще раз всем спасибо!
|
Отправлено: 20:41, 09-06-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
|
|
Отправлено: 20:46, 09-06-2018 | #12 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата Iska:
![]() В приложенном файле, как раз, конец строк в формате Unix... Протестируйте вышеприведенный скрипт... Цитата Iska:
![]() Цитата Iska:
|
|||
------- Отправлено: 20:52, 09-06-2018 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
Наблюдаю забавный побочный эффект — в файл добавляется пустая строка с концом строки в формате DOS/Windows. И файл в оригинале был без BOM. |
|
Отправлено: 21:07, 09-06-2018 | #14 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Способ сохранения без bom есть, но если это некритично, то и смысла это делать особого нет... Что касается лишней строки... ну, это ведь микрософт, с ним без веселья никак... Можно, конечно, оттримить текст, лишней строки не будет, но конечным символом массива текста, все же будет \r\n, от этого избавиться непросто.. |
|
------- Отправлено: 21:32, 09-06-2018 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
![]() |
|
Отправлено: 21:45, 09-06-2018 | #16 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата Iska:
![]() Самый "простой" вариант ![]() Ну, или по-старинке: |
|
------- Последний раз редактировалось YuS_2, 09-06-2018 в 22:46. Отправлено: 22:15, 09-06-2018 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
$UTF8Encoding = New-Object -TypeName 'System.Text.UTF8Encoding' -ArgumentList $false $sContent = [System.IO.File]::ReadAllText('C:\Мои проекты\0163\sharedconfig.vdf', $UTF8Encoding) -replace '(?<="cloudenabled"\s*")1(?=")','0' [System.IO.File]::WriteAllText('C:\Мои проекты\0163\sharedconfig2.vdf', $sContent, $UTF8Encoding) Вот за то я PowerShell и не люблю: хоть уже и напоминает отожравшегося монстра, но кучу простых и естественных вещей по-прежнему не умеет нормально делать, и выясняется, что старые дедовские способы программирования всё ещё работают надёжнее. |
|
Отправлено: 01:13, 10-06-2018 | #18 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата Iska:
![]() $utf8nobom = new-object system.text.utf8encoding($false) dir "E:\Steam\userdata\" -rec -inc 'sharedconfig.vdf'|%{ $arr = ([io.file]::readalltext($_.fullname, $utf8nobom)) -replace '(?<="cloudenabled"\s*")1(?=")','0' [io.file]::writealllines($_.fullname, $arr, $utf8nobom) } Цитата Iska:
Во всяком случае, это уже далеко не ограниченный cmd... К тому же, сейчас это открытый проект, развивается себе постепенно... |
||
------- Последний раз редактировалось YuS_2, 10-06-2018 в 09:38. Отправлено: 08:14, 10-06-2018 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Монстр, монстр
![]() Я бы лично предпочёл какой-нибудь интерпретатор для .Net по аналогу с WSH на основе той же сладкой парочки VB/JS. |
Отправлено: 08:42, 10-06-2018 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|