Войти

Показать полную графическую версию : [решено] Изменение текста в ini файлах


Страниц : 1 [2]

greg zakharov
25-09-2020, 13:53
romfus, кому адресованы ваши слова?

romfus
26-09-2020, 04:10
В любом из выше предложенных вариантов такое

Uragan66
26-09-2020, 08:06
romfus, пробуйте мой вариант:

powershell
$path = 'J:\Download\'

ForEach ($file in (Get-ChildItem $path -Filter *.ini -File))
{
$fcontent = Get-Content $file -Encoding oem `
| ForEach {$_.Replace('PostMark=536871936','PostMark=1024').Replace('DocVersion=RTM0099','DocVersion=RTM003-13-17')}
Set-Content $('new_'+$file.Name) -Value $fcontent
}
В переменной $path замените путь на свой

greg zakharov
26-09-2020, 14:39
В любом из выше предложенных вариантов такое
Ой ли? Желаете доказательств, что вы лжец и провокатор?

megaloman
27-09-2020, 11:13
romfus, MyDir = "Z:\Box_Arc\Тра ля ля"
MyMask = "^.*\.ini$"

MyRep = Array( _
"PostMark=536871936", _
"PostMark=1024", _
"DocVersion=RTM0099", _
"DocVersion=RTM003-13-17" _
)

Set Reg = CreateObject("VBScript.RegExp")
Reg.IgnoreCase = True
Reg.Pattern = MyMask

With CreateObject("Scripting.FileSystemObject")
Set Files = .GetFolder(MyDir).Files

For Each File In Files
Filename = File.Path
If Reg.Test(Filename) Then
Set fIn = .OpenTextFile(Filename, 1, False)
InTxt = fIn.ReadAll
fIn.Close

L = False
For i = LBound(MyRep) To UBound(MyRep) Step 2
If InStr(InTxt, MyRep(i)) > 0 Then
L = True
InTxt = Replace(InTxt, MyRep(i), MyRep(i + 1))
End If
Next
If L Then
Set fIn = .CreateTextFile(Filename, True)
fIn.Write InTxt
fIn.Close
End If
End If
Next
End With
MsgBox "Done"

romfus
28-09-2020, 09:01
Работает. Спасибо!

AleksandrG
29-09-2020, 23:04
с помощью скрипта изменить сразу несколько строк во всех ini файлах »
а с помощью скрипта это принципиально?
В AkelPad есть замена текста сразу во всех открытых файлах
Вероятно, есть и другие текстовые редакторы с такой возможностью




© OSzone.net 2001-2012