CMD/BAT - [решено] изменить несколько строк в файле

Аватара пользователя
Iska

Re: CMD/BAT - [решено] изменить несколько строк в файле

Сообщение Iska »

Цитата man8531:



хорошо, я Вас понял.
CMD/BAT - [решено] изменить несколько строк в файле




Не поняли. Я же пишу — портированный sed. Знающие коллеги напишут Вам код.
Аватара пользователя
man8531

Re: CMD/BAT - [решено] изменить несколько строк в файле

Сообщение man8531 »

Iska,

я сторонник встроенных в систему средств. если так не получается, то пусть не будет никак. вопрос данный не настолько критичен, чтобы к нему проявлять слишком должного внимания. опенвпн у меня стоит всего на пяти машинах - ручками настрою.
Аватара пользователя
man8531

Re: CMD/BAT - [решено] изменить несколько строк в файле

Сообщение man8531 »

Iska,

я сторонник встроенных в систему средств. если так не получается, то пусть не будет никак. вопрос данный не настолько критичен, чтобы к нему проявлять слишком должного внимания. опенвпн у меня стоит всего на пяти машинах - ручками настрою.
Аватара пользователя
man8531

Re: CMD/BAT - [решено] изменить несколько строк в файле

Сообщение man8531 »

Цитата Iska:



Ровно так же, как Вы наверняка пользуете и другие сторонние средства для автоустановки?
CMD/BAT - [решено] изменить несколько строк в файле




только для правки некоторых .msi, а во всём остальном: start / wait ..... ну или условие какое, если битность системы отличается от x86.



но, если есть у кого желание возиться с sed, то я непременно возьму это средство на вооружение. можете даже на повер шелл написать, так как неминуемо близится конец для машин с Windows XP.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] изменить несколько строк в файле

Сообщение Iska »

man8531, я тут подумал о паре вещей:Разве Вам нужна замена? Вы ведь целиком и полностью переписываете целевой файл, не так ли? Так что мешает, не делая никаких замен, просто его создавать?В принципе, поскольку из кириллицы у Вас в файле только комментарии, мы можем наплевать на UTF-8, открывая его как ANSI/1251 (поскольку он как раз без BOM), и концы строк — работая с файлом, не как с коллекцией строк, а как с единым целым.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] изменить несколько строк в файле

Сообщение Iska »

man8531, я тут подумал о паре вещей:Разве Вам нужна замена? Вы ведь целиком и полностью переписываете целевой файл, не так ли? Так что мешает, не делая никаких замен, просто его создавать?В принципе, поскольку из кириллицы у Вас в файле только комментарии, мы можем наплевать на UTF-8, открывая его как ANSI/1251 (поскольку он как раз без BOM), и концы строк — работая с файлом, не как с коллекцией строк, а как с единым целым.
Аватара пользователя
man8531

Re: CMD/BAT - [решено] изменить несколько строк в файле

Сообщение man8531 »

Iska,

1. ничто не мешает

2. можем наплевать
Аватара пользователя
man8531

Re: CMD/BAT - [решено] изменить несколько строк в файле

Сообщение man8531 »

man8531,


Попробуйте .vbs

[spoiler]Код:
[/spoiler]

Код: Выделить всё

Set FSO = CreateObject("Scripting.FileSystemObject")
FileIn = FSO.GetParentFolderName(WScript.ScriptFullName) + "\other\openvpn\conf\client.ovpn"
FileOut = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%PROGRAMFILES%") + "\OpenVPN\config\client.ovpn"
' MsgBox FileIn + vbCrLf + FileOut
ComputerName = CreateObject("WScript.Network").ComputerName
Dim What(2), Rep(2)
What(0) = "ipaddress"
What(1) = "user.crt"
What(2) = "user.Key"
Rep(0) = "192.168.0.1 1194"
Rep(1) = ComputerName + ".crt"
Rep(2) = ComputerName + ".key"
' MsgBox What(0) + vbTab + Rep(0) + vbCrLf + What(1) + vbTab + Rep(1) + vbCrLf + What(2) + vbTab + Rep(2)
Set fIn = FSO.OpenTextFile(FileIn, 1, False)  ', -2)
Alls = fIn.ReadAll
fIn.Close
For i = 0 To UBound(What)
    Alls = Replace(Alls, What(i), Rep(i))
Next
Set fIn = FSO.CreateTextFile(FileOut, True)
fIn.Write Alls
fIn.Close

Входящий и исходящий файл может быть один и тот же
Аватара пользователя
man8531

Re: CMD/BAT - [решено] изменить несколько строк в файле

Сообщение man8531 »

megaloman,

да, всё прекрасно работает, спасибо!
Аватара пользователя
man8531

Re: CMD/BAT - [решено] изменить несколько строк в файле

Сообщение man8531 »

megaloman,

вот ведь какая незадача: переместил я скрипт в папку script и он не может найти тот конфигурационный файл, тк в качестве корневого каталога он уже задаёт каталог script. как сделать так, чтобы он в качестве корня каталога всегда выбирал каталог autoinstall? в этом каталоге и расположены все остальные. конкретный путь не подойдёт, так как хочется, чтобы каталог был перемещаем и всё в нём работало.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»