脚本帮助需要编辑ini文件

时间:2012-03-10 17:22:24

标签: vbscript

我正在尝试编辑ini文件中的一行。 DeviceName = APPLE to DeviceName =“用户输入”。我几乎从互联网上的点点滴滴到处都有。它的工作原理除了最终结果是我的文件jwalk.ini在用户输入后输入了正确的条目,但是ini文件已经重命名为.ini,在ini之前没有jwalk。我肯定错过了什么。文件jwalk.ini已经存在我只需要用新的用户输入编辑它并保留名为相同的文件。

我的剧本:

Const ForReading = 1
Const ForWriting = 2
Const OpenAsASCII = 0
Const CreateIfNotExist = True

Set objFSO = CreateObject("Scripting.FileSystemObject")
' Open existing file for read access.
strInput = "c:\MyFolder\jwalk.ini"
Set objInput = objFSO.OpenTextFile(strInput, ForReading)

' Prompt for device name.
strDeviceName = InputBox("Enter devicename", "JWalk PC Name or Session Name")

' Specify the new file name.
strOutput = "c:\MyFolder\" & strComputer & ".ini"

' Create new file with write access.
Set objOutput = objFSO.OpenTextFile(strOutput, _
ForWriting, CreateIfNotExist, OpenAsASCII)

' Process input file.
Do Until objInput.AtEndOfStream
' Read next line of the input file.
strLine = objInput.ReadLine
' Search for line to be modified.
' Make search case insensitive.
If (InStr(LCase(strLine), "devicename=") > 0) Then
' Replace the line.
' You could also modify the line.
strLine = "devicename=" & strDeviceName
End If
' Write line to the output file.
objOutput.WriteLine strLine
Loop

' Clean up.
objInput.Close
objOutput.Close

' Delete the original file.
objFSO.DeleteFile(strInput)

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:1)

如果您使用过Option Explicit,则会被告知

strOutput = "c:\MyFolder\" & strComputer & ".ini"

使用undefined / uninitialized变量strComputer。

答案 1 :(得分:1)

在这里,您将“strComputer”作为var传递,但从未设置它的值:

' Specify the new file name.
strOutput = "c:\MyFolder\" & strComputer & ".ini"

如果您尝试获取计算机名称,可以考虑以下事项:

' Specify the new file name.
strOutput = "c:\MyFolder\" & GetComputerName() & ".ini"

Function GetComputerName()
  Dim ob
  Set ob = Wscript.CreateObject("Wscript.Network")
  GetComputerName = ob.ComputerName
  Set ob = nothing 
End Function
相关问题