【问题标题】:Use a VBS to edit ini for users %appdata% folder使用 VBS 为用户 %appdata% 文件夹编辑 ini
【发布时间】:2015-01-18 23:57:10
【问题描述】:

我有一个脚本可以编辑 ini 文件中的 a 行,该文件位于用户 %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 个 repuataion,但这是我在弹出框中得到的:

  • 脚本:>
  • 线路:13
  • 字符:1
  • 错误:找不到路径
  • 代码:800A004C
  • 来源:Microsoft VBScript 运行时错误

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

【问题讨论】:

  • 为什么不能使用%APPDATA%?变量是否指向错误的位置?还是用户登录时文件被锁定,无法修改?
  • 我确实尝试过使用 %APPDATA% 但它给了我一个错误,我不是脚本专家。我不知道如何在 VBS 脚本中定义 %APPDATA%
  • 好吧,如果您希望有人帮助您解决错误,您需要先显示错误。就%APPDATA% 而言:您不需要自己定义变量。它是操作系统为您维护的自动环境变量。
  • 我目前还不能添加图片,但我在上面的要点中放置了错误。谢谢

标签: for-loop vbscript edit ini appdata


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    你不能在 vbscript 中可靠地做到这一点。

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

    处理这种问题类型的正常方法是使用登录脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-19
      • 2023-03-03
      • 1970-01-01
      • 2011-08-29
      • 2011-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多