使用 VBS 为用户 %appdata% 文件夹编辑 ini

Use a VBS to edit ini for users %appdata% folder

我有脚本可以编辑 ini 文件中的一行,该文件位于用户 %Appdata% 文件夹中,即 C:\Users\<>\AppData\Roaming。 我目前的脚本只编辑一个指向正确文件位置的文件,但我希望有一个脚本可以编辑每个登录用户文件夹中的文件
我有一个如下所示的 vbs,但是当用户登录时,我无法使用变量 %appdata% 来编辑文件夹下的文件

Const ForReading = 1
Const ForWriting = 2
Dim strUserName, CurrDir

Set objFSO = CreateObject("Scripting.FileSystemObject")

strUserName = InputBox("Please enter your email address below in the following format:" & Vbnewline & "firstname_lastname@test.com" & Vbnewline & Vbnewline &  "HINT - If you are unsure, you can look up your name", "Add internet email address")

If strUserName = "" Then
    Wscript.Quit
End If

Set objTextFile = objFSO.OpenTextFile("H:\appdata\Linkpoint360\LinkPointConfig.ini", ForReading)

Do Until objTextFile.AtEndOfStream
    strNextLine = objTextFile.Readline

    intLineFinder = InStr(strNextLine, "UserEMailAddress")
    If intLineFinder <> 0 Then
        strNextLine = "UserEMailAddress=" & strUserName
    End If

    strNewFile = strNewFile & strNextLine & VbCrLf
Loop

objTextFile.Close

Set objTextFile = objFSO.OpenTextFile("H:\appdata\Linkpoint360\LinkPointConfig.ini", ForWriting)

objTextFile.WriteLine strNewFile
objTextFile.Close

我不是脚本专家,但我已尽最大努力在 Internet 上找到合适的解决方案,但我没有运气 如果有人可以编辑此 vbs 并提供适当的脚本,将不胜感激

@ Ansgar Wiechers,不能 post 图像,因为我没有 10 repuataion,但这是我在弹出框中得到的:

我在脚本中使用 %appdata% 时遇到的错误。 从上面的代码中,我刚刚将文件位置 "H:\appdata...." 编辑为“%appdata%.....”

您无法在 vbscript 中可靠地执行此操作。

但是您可以做出一个安全的假设(忽略我认为无关紧要的网络和配置文件更新问题)配置文件位于用户文件夹下,并且每个用户将具有相同的 AppFolder 相对路径。

处理此类问题的常规方法是使用登录脚本。

FileSystemObject 方法不扩展环境变量。你需要自己做,例如像这样:

...
Set sh = CreateObject("WScript.Shell")
config = sh.ExpandEnvironmentStrings("%APPDATA%\Linkpoint360\LinkPointConfig.ini")
Set objTextFile = objFSO.OpenTextFile(config, ForReading)
...