'==========================================================
' Замена нескольких параметров в wincmd.ini и рестарт TC
'==========================================================
Option Explicit
Dim WSH, FSO, TCIniFile
Set WSH = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
TCIniFile = WSH.ExpandEnvironmentStrings("%COMMANDER_INI%")
'Пример замены нескольких параметров
ChangeIni "DirBrackets=0" , "DirBrackets=1"
ChangeIni "StartupScreen=0", "StartupScreen=1"
'Рестарт TC
RestartTotal
'Выход
Quit
Sub Quit
Set WSH = Nothing
Set FSO = Nothing
WScript.Quit
End Sub
Sub ChangeIni(pStr1, pStr2)
Dim Text
Text = FSO.OpenTextFile(TCIniFile, 1).ReadAll
Text = Replace(Text, pStr1, pStr2, 1, -1, 1)
FSO.OpenTextFile(TCIniFile, 2).Write Text
End Sub
'(c) Volniy
Sub RestartTotal
Dim TCS, TCexe, Timeout, QuitByTimeOut
Set TCS = CreateObject("TCScript.Helper")
TCexe = """" & TCS.TCPath & "\totalcmd.exe"""
'Завершаем работу ТС
TCS.SendCommand "cm_Exit", True
'Ожидание завершения работы ТС
Timeout = 3000 ' Сколько ждать выключения в мсек
Do
Timeout = Timeout - 100
If Timeout < 0 Then QuitByTimeOut = True: Exit Do
WScript.Sleep 100
Loop While TCS.IsRunningTC
'Запускаем новый экземпляр программы
If Not QuitByTimeOut Then WSH.Run TCexe
Set TCS = Nothing
End Sub
17.05.2010 - Исправлено. Убрано обращение к внешнему скрипту.
Последний раз редактировалось Batya Пн май 17, 2010 09:30, всего редактировалось 1 раз.
Batya
Спасибо.
1. Const ChangeIniFile = """C:\Путь\к скрипту\замены текста.vbs""" Ещё раз для тупых, к чему именно этот путь?
2. Работать будет если в пути %COMMANDER_PATH% использовать?
'==========================================================
' Замена секции в wincmd.ini и рестарт TC
'==========================================================
Option Explicit
Dim WSH, TCS
Set WSH = CreateObject("WScript.Shell")
Set TCS = CreateObject("TCScript.Helper")
' Примеры замены секции:
' 1) Записываемые данные - из другого ini-файла
TCS.INIWriteSection TCS.MainINI, "configuration2" ,TCS.INIReadSection("C:\some.ini","some_section")
' 2) Записываемые данные секции формируются на лету
TCS.INIWriteSection TCS.MainINI, "configuration3" ,"FirstPar=0" & Chr(0) & "SecondPar=1" & Chr(0) & "ThirdPar=-1" & Chr(0)
'Рестарт TC
RestartTotal
Set TCS = Nothing
Set WSH = Nothing
WScript.Quit
Sub RestartTotal
Dim TCexe, Timeout, QuitByTimeOut
TCexe = """" & TCS.TCPath & "\totalcmd.exe"""
'Завершаем работу ТС
TCS.SendCommand "cm_Exit", True
'Ожидание завершения работы ТС
Timeout = 3000 ' Сколько ждать выключения в мсек
Do
Timeout = Timeout - 100
If Timeout < 0 Then QuitByTimeOut = True: Exit Do
WScript.Sleep 100
Loop While TCS.IsRunningTC
'Запускаем новый экземпляр программы
If Not QuitByTimeOut Then WSH.Run TCexe
End Sub
Den_Klimov писал(а):1. Const ChangeIniFile = """C:\Путь\к скрипту\замены текста.vbs""" Ещё раз для тупых, к чему именно этот путь?
2. Работать будет если в пути %COMMANDER_PATH% использовать?
Поскольку есть вопросы, решил упростить - убрал обращение к внешнему скрипту.