изменить несколько строк в файле
всем привет
не получается изменить три строки в файле конфигурации по найденному в сети батнику: Код:
@echo off |
пытался переменным TMPR присвоить эти значения переменных replacekey, но не получается вывести всё это в файл - он затраивает строки.
|
man8531, Здесь решалась подобная задача
Но, однако, хотелось бы видеть исходный файл полностью, и, если возможно, переименуйте его в .txt и предоставьте для возможности предметного ответа. Подробнее опишите, что надо менять. |
Цитата:
|
Вложений: 1
файл во вложении
|
Цитата:
|
man8531, Ваш файл конфигурации — в кодировке UTF-8 без BOM и с концами строк в формате Unix. Вас устроит PowerShell?
|
Цитата:
|
Цитата:
Цитата:
В общем, я не знаю, что Вам тут посоветовать. Разве что портированный под Windows sed использовать. Ни пакетные файлы, ни, скорее всего, WSH в данном случае (при условии сохранения оригинального формата файла) не помогут. |
Цитата:
спасибо |
Цитата:
|
Iska,
я сторонник встроенных в систему средств. если так не получается, то пусть не будет никак. вопрос данный не настолько критичен, чтобы к нему проявлять слишком должного внимания. опенвпн у меня стоит всего на пяти машинах - ручками настрою. |
man8531, а что мешает положить тот же sed с библиотеками на тот же самый носитель, с которого Вы будете делать автоустановку, и пользоваться? Ровно так же, как Вы наверняка пользуете и другие сторонние средства для автоустановки? Ничего не мешает.
|
Цитата:
но, если есть у кого желание возиться с sed, то я непременно возьму это средство на вооружение. можете даже на повер шелл написать, так как неминуемо близится конец для машин с Windows XP. |
man8531, я тут подумал о паре вещей:
|
Iska,
1. ничто не мешает 2. можем наплевать |
man8531,
Попробуйте .vbs
Код:
Set FSO = CreateObject("Scripting.FileSystemObject") |
megaloman,
да, всё прекрасно работает, спасибо! |
megaloman,
вот ведь какая незадача: переместил я скрипт в папку script и он не может найти тот конфигурационный файл, тк в качестве корневого каталога он уже задаёт каталог script. как сделать так, чтобы он в качестве корня каталога всегда выбирал каталог autoinstall? в этом каталоге и расположены все остальные. конкретный путь не подойдёт, так как хочется, чтобы каталог был перемещаем и всё в нём работало. |
man8531, покажите структуру каталогов. Конкретно интересует взаиморасположение каталогов script и other\openvpn\conf.
|
Вложений: 1
так пойдёт?
корень всего - каталог autoinstall |
man8531, Я ориентировался на Ваш код - скрипт расположен в той же папке, что и папка other.
Если скрипт и папка other расположены на одном диске (причём имя и вложенность папки не имеет значения), то для пути Диск:\other\openvpn\conf\client.ovpn замените строку Код:
FileIn = FSO.GetDriveName(WScript.ScriptFullName) + "\other\openvpn\conf\client.ovpn" Цитата:
Код:
FileIn = FSO.GetDriveName(WScript.ScriptFullName) + "\autoinstall\other\openvpn\conf\client.ovpn" |
megaloman,
не помогает, говорит, что не найден путь до переменной FileIn наверное, я делаю что-то не так или некорректно объясняю: мой каталог установки (autoinstall), будет располагаться где угодно - рабочий стол, папка загрузок и тд. в батниках я использую переменную %~dp0 для обозначения исходной папки, откуда всё запускается. у меня один большой батник, который производит установку программ и конфигурирует некоторые конфиги с помошью доп батников или скриптов, вроде Вашего. так вот, сейчас я поместил в главный батник, что лежит в корне каталога autoinstall, строку: Код:
%~dp0script\openvpn_Ethernet.vbs сам каталог autoinstall сейчас находится на рабочем столе. наверное, в этом случае придётся ложить конфиги в папку script. потому, как я понял, головным каталогом скрипт распознаёт script в этом виде он отрабатывает всё без проблем, если конфиг опенвпн поместить в каталог script Скрытый текст
Код:
Set FSO = CreateObject("Scripting.FileSystemObject") |
Цитата:
Кстати, а наверное необходимо писАть путь в кавычках, в любом случае они не мешают. "%~dp0script\openvpn_Ethernet.vbs" |
Вложений: 1
Цитата:
Цитата:
|
man8531, Я слегка запутался, иду по пути наименьшего сопротивления:
Батник: Код:
@Echo Off Код:
With WScript.Arguments |
megaloman,
если всё сложно, то и не стоит оно того. я, думал, что пару символов добавил и всё, а тут симбиоз уже намечается какой-то. upd в общем решил вопрос двумя шаблонами, которые будут копироваться в каталог программы, в зависимости от потребности. а остальные два параметра руками потом поправлю. upd а лучше, чтобы труды не пропали, размещу конфиги в папке со скриптами, там они будут их отрабатывать. upd положил - всё отлично отрабатывают! спасибо! |
megaloman, можно просто использовать относительный путь — из script вверх, в родительский каталог, а затем вниз к other и т.д.:
Код:
FileIn = FSO.GetParentFolderName(WScript.ScriptFullName) + "\..\other\openvpn\conf\client.ovpn" |
man8531,
Вот батник, совмещенный с js. Всё в одном файле. Батник должен быть в рядом с папкой other. У меня всё это хозяйство в папке autoinstall, которая на рабочем столе. Работает.
Всё ваше дополнительное батниковаяние, если надо, должно происходить между имеющимися /* */ Код:
@set @E=1; /* |
Цитата:
|
Время: 07:58. |
Время: 07:58.
© OSzone.net 2001-