![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - скрипт для замены текста в файле |
|
Любой язык - скрипт для замены текста в файле
|
Ветеран Сообщения: 968 |
есть каталог с папками(профилями почты Mozilla Thunderbird)
в каждой папке данного каталога есть некий заведомо известный файл(profiles.ini) с заведомо известным содержанием: Скрытый текст
[General] StartWithLastProfile=1 [Profile0] Name=default IsRelative=0 Path=\\S680000FILE\MAIL\almazova_iv требуется изменить рекурсивно(во всех папках данного каталога) файл profiles.ini вот так: Скрытый текст
[General] StartWithLastProfile=1 [Profile0] Name=default IsRelative=0 Path=\\S680000FILE3\MAIL\almazova_iv а потом вернуть как было. |
|
Отправлено: 13:14, 20-11-2014 |
Ветеран Сообщения: 968
|
Профиль | Отправить PM | Цитировать не корректно отработал
получилось Цитата:
а должно было быть Цитата:
|
||
Отправлено: 14:45, 21-11-2014 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось Georgio, 21-11-2014 в 15:38. Отправлено: 15:33, 21-11-2014 | #12 |
Ветеран Сообщения: 968
|
Профиль | Отправить PM | Цитировать Цитата Georgio:
Цитата Georgio:
может что бы скрипт работал быстрее и не спотыкался на чём то (например кириллицу в именах папок или файлов) рекурсию ограничить вхождением до одного. да, и тут пока проверял оказалось что некоторые профили настроены по ip т.е. часть строки с ip нужно заменить по аналогии с именем т.е. 10.11.60.16 на допустим 10.11.60.228 http://rghost.ru/59192373 |
||
Отправлено: 23:59, 21-11-2014 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата batyaPS:
|
|
Отправлено: 00:42, 22-11-2014 | #14 |
Ветеран Сообщения: 1759
|
|
Отправлено: 11:50, 22-11-2014 | #15 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата batyaPS (из скрытого текста):
В реальных файлах: [General] StartWithLastProfile=1 [Profile0] Name=default IsRelative=0 Path=\\S680000FILE\MAIL\almazova_iv Отсюда и отсутствие первой строки. batyaPS, просто уберите из кода пустую строку после "######################". Цитата batyaPS:
Данному коду кириллица в именах папок не страшна, а кириллические имена файлов и вовсе к нему не имеют отношеия, так как имена всех обрабатывемых файлов-- "profiles.ini". Цитата batyaPS:
@echo off set "dir=D:\Work\583\MAIL" set "file=profiles.ini" :: Если нужно изменить строку, то "act=3". :: Если нужно "отозвать" изменение, то "act=". set act= for /f "delims=" %%i in (' "2>nul dir /a-d/b/s "%dir%\%file%"" ') do ( for /f "tokens=2,4 delims=\" %%j in (' findstr /rc:"^Path=\\\\" "%%i" ') do ( >"%%i" ( <"%~f0" more +41 <nul ( set /p=Path=\\ if defined act ( if "%%j"=="S680000FILE" ( set /p=S680000FILE%act% ) else ( set /p=10.11.60.228 ) ) else ( if "%%j"=="S680000FILE3" ( set /p=S680000FILE ) else ( set /p=10.11.60.16 ) ) set /p=\MAIL\%%k ) ) ) ) exit /b ###################### [General] StartWithLastProfile=1 [Profile0] Name=default IsRelative=0 |
|||
Отправлено: 14:20, 22-11-2014 | #16 |
Ветеран Сообщения: 968
|
Профиль | Отправить PM | Цитировать Georgio, работает
спасибо Цитата Foreigner:
Скрытый текст
PS C:\WINDOWS\system32\WindowsPowerShell\v1.0> $maildir = "$env:C:\1\MAIL" # Полный путь к папке MAIL gci $maildir profiles.ini -recurse | % { (gc $_.fullname) -replace "S680000FILE","S680000FILE3" -replace '\d*\.\d*\.\d*\.\d*','10.11.60.228' | sc $_.fullname -encoding default } Set-Content : Не удается привязать параметр "Encoding". Не удается преобразовать значение "default" в тип "Microsoft.PowerShell .Commands.FileSystemCmdletProviderEncoding" из-за недопустимых значений перечисления. Укажите одно из следующих значений перечи сления и повторите попытку. Возможны следующие значения перечисления: "Unknown, String, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Ascii". строка:5 знак:131 + (gc $_.fullname) -replace "S680000FILE","S680000FILE3" -replace '\d*\.\d*\.\d*\.\d*','10.11.60.228' | sc $_.fullname -enc oding <<<< default + CategoryInfo : InvalidArgument: ( ![]() + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.SetContentCommand Set-Content : Не удается привязать параметр "Encoding". Не удается преобразовать значение "default" в тип "Microsoft.PowerShell .Commands.FileSystemCmdletProviderEncoding" из-за недопустимых значений перечисления. Укажите одно из следующих значений перечи сления и повторите попытку. Возможны следующие значения перечисления: "Unknown, String, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Ascii". строка:5 знак:131 + (gc $_.fullname) -replace "S680000FILE","S680000FILE3" -replace '\d*\.\d*\.\d*\.\d*','10.11.60.228' | sc $_.fullname -enc oding <<<< default + CategoryInfo : InvalidArgument: ( ![]() + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.SetContentCommand Set-Content : Не удается привязать параметр "Encoding". Не удается преобразовать значение "default" в тип "Microsoft.PowerShell .Commands.FileSystemCmdletProviderEncoding" из-за недопустимых значений перечисления. Укажите одно из следующих значений перечи сления и повторите попытку. Возможны следующие значения перечисления: "Unknown, String, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Ascii". строка:5 знак:131 + (gc $_.fullname) -replace "S680000FILE","S680000FILE3" -replace '\d*\.\d*\.\d*\.\d*','10.11.60.228' | sc $_.fullname -enc oding <<<< default + CategoryInfo : InvalidArgument: ( ![]() + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.SetContentCommand Set-Content : Не удается привязать параметр "Encoding". Не удается преобразовать значение "default" в тип "Microsoft.PowerShell .Commands.FileSystemCmdletProviderEncoding" из-за недопустимых значений перечисления. Укажите одно из следующих значений перечи сления и повторите попытку. Возможны следующие значения перечисления: "Unknown, String, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Ascii". строка:5 знак:131 + (gc $_.fullname) -replace "S680000FILE","S680000FILE3" -replace '\d*\.\d*\.\d*\.\d*','10.11.60.228' | sc $_.fullname -enc oding <<<< default + CategoryInfo : InvalidArgument: ( ![]() + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.SetContentCommand Set-Content : Не удается привязать параметр "Encoding". Не удается преобразовать значение "default" в тип "Microsoft.PowerShell .Commands.FileSystemCmdletProviderEncoding" из-за недопустимых значений перечисления. Укажите одно из следующих значений перечи сления и повторите попытку. Возможны следующие значения перечисления: "Unknown, String, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Ascii". строка:5 знак:131 + (gc $_.fullname) -replace "S680000FILE","S680000FILE3" -replace '\d*\.\d*\.\d*\.\d*','10.11.60.228' | sc $_.fullname -enc oding <<<< default + CategoryInfo : InvalidArgument: ( ![]() + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.SetContentCommand Set-Content : Не удается привязать параметр "Encoding". Не удается преобразовать значение "default" в тип "Microsoft.PowerShell .Commands.FileSystemCmdletProviderEncoding" из-за недопустимых значений перечисления. Укажите одно из следующих значений перечи сления и повторите попытку. Возможны следующие значения перечисления: "Unknown, String, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Ascii". строка:5 знак:131 + (gc $_.fullname) -replace "S680000FILE","S680000FILE3" -replace '\d*\.\d*\.\d*\.\d*','10.11.60.228' | sc $_.fullname -enc oding <<<< default + CategoryInfo : InvalidArgument: ( ![]() + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.SetContentCommand |
|
Отправлено: 11:10, 24-11-2014 | #17 |
Ветеран Сообщения: 1759
|
Цитата batyaPS:
В моем примере была системная переменная userprofile, я к ней обратился через "диск" переменных env: |
|
Отправлено: 17:13, 24-11-2014 | #18 |
Ветеран Сообщения: 968
|
Профиль | Отправить PM | Цитировать раз уж такое дело - а подскажите читабельную на выходе команду которая выведет по всем папкам в папке без рекурсии права ? т.е. запустив в папке что бы выдала какие права у вложенных в данную папку имеются .
|
Отправлено: 23:29, 09-01-2015 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата batyaPS:
|
|
Отправлено: 06:27, 10-01-2015 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
TextReplace - Программа для поиска и замены текста в любых файлах | AZJIO | AutoIt | 6 | 02-02-2018 20:56 | |
CMD/BAT - [решено] Нужен bat для замены значения в определенном файле. | Asybra | Скриптовые языки администрирования Windows | 9 | 04-12-2013 05:12 | |
Replacer - утилита для замены подстроки в файле | apozlevich | AutoIt | 4 | 16-10-2013 23:37 | |
Любой язык - Скрипт для замены | Kira1 | Скриптовые языки администрирования Windows | 2 | 15-07-2013 18:39 | |
CMD/BAT - [решено] Подскажите скрипт или утилиту для перевода текста в txt-файле в другую раскладку | Trueman777 | Скриптовые языки администрирования Windows | 7 | 23-09-2011 22:43 |
|