Изменение текстовых строк в файле в пакете Windows - PullRequest
0 голосов
/ 09 февраля 2012

Допустим, у меня есть файл, содержащий следующее:

set_t lorem = "168"
set_t ipsum = "913"
set_t dolor = "294"
...

Действительно, что установлено, я не могу знать в командном файле, в котором я работаю. Единственное, что я точно знаю, эточасть "set_t lorem".

Но мне нужно заменить любое значение, которое у него есть (168, например, в set_t lorem), т.е. на 100.

Как мне сделать это в командном файле?VBS или внешние двоичные файлы в порядке;хотя не много зависимостей было бы здорово.Это должно быть распределено по массе.

1 Ответ

1 голос
/ 09 февраля 2012

Вот решение VBScript:

Option Explicit

Const ForReading = 1
Const ForWriting = 2

Dim filename, prefix, newvalue, fso, file, str, line
Set fso = CreateObject("Scripting.FileSystemObject")

' Read and validate the parameters
If Not WScript.Arguments.Count = 3 Then
  Wscript.Echo "Syntax: PatchData FileName Prefix NewValue"
  Wscript.Quit 1
End If
filename = Wscript.Arguments(0)
prefix = Wscript.Arguments(1)
newvalue = Wscript.Arguments(2)
If Not fso.FileExists(filename) Then
  Wscript.Echo "Filename does not exists " & filename
  Wscript.Quit 1
End If

' Read the file 1 line at a time into a string, patching as we go
str = ""
Set file = fso.OpenTextFile(filename, ForReading)
While not file.AtEndOfStream
  line = file.ReadLine
  If Left(line, Len(prefix)) = prefix Then
    line = prefix & " = """ & newvalue & """"
  End If
  str = str & line & vbCrLf
Wend
Set file = Nothing

' Write the patched string back to the file
Set file = fso.OpenTextFile(filename, ForWriting)
file.Write str
Set file = Nothing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...