我正在尝试编辑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)
有什么想法吗?感谢。
答案 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