|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Использование имени файла для правки в теле файла. |
|
CMD/BAT - Использование имени файла для правки в теле файла.
|
Новый участник Сообщения: 3 |
Доброго дня, проблема следующая:
Есть конфигурационные файлы - user1.cfg , user2.cfg , user3.cfg .. и т.п. Внутри файлов есть ссылка на папку профайла, соответственно в user1.cfg - 'c:\path\user1'. Иногда эта ссылка не совпадает и в user1.cfg может оказаться 'c:\path\user3'. Как заставить сверять имя файла со строкой в конфиге,и в случае отличия подставлять нужное имя, из имени файла? |
|
Отправлено: 11:40, 15-07-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата xkafkax:
Цитата xkafkax:
Упакуйте образец конфигурационного файла в архив и выложите сюда, либо на RGhost. |
||
Отправлено: 11:53, 15-07-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Пожалуйста...user1.zip
Собственно , ASCII DOS |
Отправлено: 14:55, 15-07-2013 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать xkafkax, то есть мы должны заменить последний элемент пути в параметрах «OutputFilesDirectory»/«TmpFilesDirectory» на базовое имя конфигурационного файла, так?
На WSH: Можете просто перетаскивать файл конфигурации на скрипт. |
Отправлено: 06:11, 16-07-2013 | #4 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Там проблема в том, что этих файлов не один и не два..
UPD: Спасибо, щас разберусь со скриптом. просто сделаю батник,чтоб перебирал все конфиг файлы и травил на них скрипт. |
|
Последний раз редактировалось xkafkax, 16-07-2013 в 11:07. Отправлено: 10:56, 16-07-2013 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата xkafkax:
|
|
Отправлено: 19:00, 16-07-2013 | #6 |
Пользователь Сообщения: 124
|
Профиль | Отправить PM | Цитировать #Powershell script. #Don't forget unlock script executing by #using command "Set-ExecutionPolicy RemoteSigned" or "Set-ExecutionPolicy Unrestricted" #Save this file with ".ps1" extension function ConvertTo-Encoding ([string]$From, [string]$To) { Begin { $encFrom=[System.Text.Encoding]::GetEncoding($from) $encTo=[System.Text.Encoding]::GetEncoding($to) } Process { $bytes=$encTo.GetBytes($_) $bytes=[System.Text.Encoding]::Convert($encFrom,$encTo,$bytes) $encTo.GetString($bytes) } } $FileList=Get-ChildItem -Path "с:\*" -Include "*.cfg" -Recurse foreach($el in $FileList) { $outFile="" $str="" $CurFile=Get-Content $el | ConvertTo-Encoding cp866 windows-1251 $CurFile | % { if (($_ | Select-String -Pattern "OutputFilesDirectory","TmpFilesDirectory" -AllMatches) -eq $null) { $str=$_+"`n" } elseif ($_.ToString().SubString($_.ToString().Length-6,5) -ne $el.Name) { $str=$_.ToString().SubString(0,$_.ToString().Length-6)+$el.Name.TrimEnd(".cfg")+"\`n" } else { $str=$_+"`n" } $outFile+=$str } if ($CurFile -eq $outFile) { "файлы равны" Continue } if (Test-Path -Path $el) { Remove-Item -Path $el -Force } $file=New-Object System.IO.StreamWriter((New-Object System.IO.FileStream($el,[IO.FileMode]::OpenOrCreate)),[Text.Encoding]::GetEncoding("cp866")) $file.Write($outFile) $file.Close() } |
------- Отправлено: 18:57, 19-07-2013 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата sunnykey:
|
|
Отправлено: 20:52, 19-07-2013 | #8 |
Пользователь Сообщения: 124
|
Профиль | Отправить PM | Цитировать Цитата Iska:
И Вам скажу: не делайте так. » Само собой ![]() |
------- Отправлено: 11:06, 20-07-2013 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Запуск bat-файла от имени админа.Как сделать каталог этого bat-файла текущим?? | axmed0207 | Скриптовые языки администрирования Windows | 1 | 19-01-2012 06:14 | |
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. | OSArev | Скриптовые языки администрирования Windows | 2 | 30-01-2011 11:58 | |
Запуск командного файла с переменной в теле | saavaage | AutoIt | 1 | 27-08-2010 13:21 | |
Как получить имя текущего пользователя для использования его в имени файла | Denchik | Автоматическая установка Windows 2000/XP/2003 | 1 | 25-01-2006 22:33 |
|