使用 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,但这是我在弹出框中得到的:
- 脚本:<<文件位置>>
- 第 13 行
- 字符:1
- 错误:找不到路径
- 代码:800A004C
- 来源:Microsoft VBScript 运行时错误
我在脚本中使用 %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)
...
我有脚本可以编辑 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,但这是我在弹出框中得到的:
- 脚本:<<文件位置>>
- 第 13 行
- 字符:1
- 错误:找不到路径
- 代码:800A004C
- 来源:Microsoft VBScript 运行时错误
我在脚本中使用 %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)
...