xkafkax, то есть мы должны заменить последний элемент пути в параметрах «OutputFilesDirectory»/«TmpFilesDirectory» на базовое имя конфигурационного файла, так?
На WSH:
читать дальше »
Код:

Option Explicit
Dim strConfigFileName
Dim objFSO
Dim strContent
If WScript.Arguments.Count = 1 Then
strConfigFileName = WScript.Arguments.Item(0)
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strConfigFileName) Then
With objFSO.OpenTextFile(strConfigFileName)
strContent = StrConvert(.ReadAll(), "windows-1251", "cp866")
.Close
End With
With WScript.CreateObject("VBScript.RegExp")
.IgnoreCase = True
.Global = True
.MultiLine = True
.Pattern = "^( *)(OutputFilesDirectory|TmpFilesDirectory)(=.+\\)(.+)(\\\r)$"
If .Test(strContent) Then
strContent = .Replace(strContent, "$1$2$3" & objFSO.GetBaseName(strConfigFileName) & "$5")
End If
End With
With objFSO.CreateTextFile(strConfigFileName)
.Write StrConvert(strContent, "cp866", "windows-1251")
.Close
End With
Else
WScript.Echo "Config file [" & strConfigFileName & "] not found."
End If
Set objFSO = Nothing
Else
WScript.Echo "Usage: wscript.exe " & WScript.ScriptName & " <Config file>"
End If
WScript.Quit 0
'=============================================================================
'=============================================================================
' HKEY_CLASSES_ROOT\MIME\Database\Charset
' cp866, windows-1251, koi8-r, unicode, utf-8, _autodetect
'=============================================================================
Function StrConvert(ByVal strText, ByVal strSourceCharset, ByVal strDestCharset)
Const adTypeText = 2
Const adModeReadWrite = 3
With WScript.CreateObject("ADODB.Stream")
.Type = adTypeText
.Mode = adModeReadWrite
.Open
.Charset = strSourceCharset
.WriteText strText
.Position = 0
.Charset = strDestCharset
StrConvert = .ReadText
.Close
End With
End Function
'=============================================================================
Можете просто перетаскивать файл конфигурации на скрипт.