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

时间:2015-01-18 23:57:10

标签: for-loop vbscript edit ini appdata

我有编辑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

我不是脚本专家,但我最好通过互联网找到合适的解决方案而且我没有运气 如果有人可以请编辑此vbs并提供正确的脚本,那将非常感激

@ Ansgar Wiechers,我不能发布图片,因为我没有10个代表,但这是我在pop框中得到的内容:

  • 脚本:&lt;&lt;文件位置&gt;&gt;
  • 行:13
  • Char:1
  • 错误:未找到路径
  • 代码:800A004C
  • Scource:Microsoft VBScript运行时错误

在我的脚本中使用%appdata%时出现的错误。 从上面的代码我刚刚编辑了文件位置&#34; H:\ appdata ....&#34;到&#34;%appdata%.....&#34;

2 个答案:

答案 0 :(得分:0)

你无法在vbscript中做到这一点。

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

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

答案 1 :(得分:0)

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

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