2016-03-11 3 views
0

Мне нужен код в VBScript или пакет для замены 5 символов (жирные номера внизу) в строке текстового файла для изменения номеров портов.Заменить строки номера в текстовом файле

change_port.vbs:

prefsFile = "%userprofile%\Desktop\teste.msrcincident" 
prefsFile = CreateObject("WScript.Shell").ExpandEnvironmentStrings(prefsFile) 

newPrefs = "5500" 

Set fso = CreateObject("Scripting.FileSystemObject") 

json = fso.OpenTextFile(prefsFile).ReadAll 

Set re = New RegExp 
re.Pattern = "":*?",*," 

json = re.Replace(json, ": & newPrefs & ",*,") 

fso.OpenTextFile(prefsFile, 2).Write(json) 

Первоначальный текст файла:

RCTICKET="65538,1,10.0.0.1:54593,*,ucIdnri2n4QPf/bv92mtx4w2qliCNdyDgBpHPr7nJFdxYL2/dR+iel9Mh4zgD6QR,*,*,Fbjf5rcIrdrlnibnisrzRcO8tsY=" PassStub="HG)7HbhIZPTiKy" RCTICKETENCRYPTED="1" DtStart="1457700115" DtLength="142560" L="0"/></UPLOADINFO>

Ожидаемый результат текстового файла:

RCTICKET="65538,1,10.0.0.1:5500,*,ucIdnri2n4QPf/bv92mtx4w2qliCNdyDgBpHPr7nJFdxYL2/dR+iel9Mh4zgD6QR,*,*,Fbjf5rcIrdrlnibnisrzRcO8tsY=" PassStub="HG)7HbhIZPTiKy" RCTICKETENCRYPTED="1" DtStart="1457700115" DtLength="142560" L="0"/></UPLOADINFO>

Может кто-нибудь мне помочь?

+0

Что вы пробовали? пожалуйста, поделитесь своим кодом! мы не собираемся делать вашу работу за вас, мы здесь, чтобы помочь вам с конкретными проблемами программирования, с которыми вы сталкиваетесь; посмотрите также [здесь] (http://www.stackoverflow.com/help/how-to-ask) ... – aschipfl

ответ

0

Ваши поисковые и замещающие выражения испорчены. Вы ищете двоеточие (:), за которым следует одна или несколько цифр (\d+ или [0-9]+), а затем запятая (,) и хотите заменить ее двоеточием, за которым следуют новый номер порта и запятая.

Изменить это:

re.Pattern = "":*?",*," 

json = re.Replace(json, ": & newPrefs & ",*,") 

в это.

re.Pattern = ":\d+," 

json = re.Replace(json, ":" & newPrefs & ",") 

Всегда держите свои выражения как можно более простыми.

Смежные вопросы