不幸的是我的VB知识非常少,但我需要一个脚本来执行以下操作:
我有一个文件Licenses.txt,每行包含一个许可证:
License 1
License 2
License 3
我有另一个文件response.ini,其格式为ProductKey
,格式为:ProductKey=XXXXX-XXXXXX-XXXXXX-XXXX
我想做以下事项:
从Licenses.txt中读取第一个许可证。如果它是免费的(如果许可证不在Used
之后是免费的),那么它应该替换response.ini中的XXXXX-XXXXXX-XXXXXX-XXXX
值并在第一个许可证之后放置Used
,所以在License.txt中它应该保持License 1 - Used
。如果我再次运行它,那么它应该使用第二个许可证并将Used
放在它之后等。如果我没有任何免费许可证,那么我应该得到一个ErrorMessage。
希望你能理解我想做什么。有人能帮助我吗?
谢谢!
答案 0 :(得分:1)
这是一个完全符合你想要的脚本。
Dim oFSO : Set oFSO = CreateObject("Scripting.FileSystemObject")
'Read the licence.txt file
Dim f : Set f = oFSO.OpenTextFile("Licence.txt", 1)
Dim sData : sData = f.ReadAll
f.close
'Find next available licence
licenceKey = ""
Dim sLine : for each sLine in split(sData, vbNewLine)
if (lcase(right(sLine,7)) <> " - used") then
licenceKey = sLine
exit for
end if
Next
if (licenceKey = "") then
'Show error if no licences are available
msgbox "No available licences! ", vbOkOnly + vbexclamation, "Licence"
else
'Write a Response.ini file
Set f = oFSO.OpenTextFile("Response.ini", 2, true)
f.Write licenceKey
f.close
'Mark the licence as used
sData = replace(sData, licenceKey, licenceKey & " - Used")
'ReWrite the licence.txt file
Set f = oFSO.OpenTextFile("Licence.txt", 2)
f.Write sData
f.close
end if