我有脚本编辑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:appdataLinkpoint360LinkPointConfig.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:appdataLinkpoint360LinkPointConfig.ini", ForWriting)
objTextFile.WriteLine strNewFile
objTextFile.Close
我不是脚本专家,但我尽力通过互联网找到合适的解决方案,但我没有运气如果有人可以编辑此vbs并提供适当的脚本,那将不胜感激
@ Ansgar Wiechers,无法发布图像,因为我没有 10 个 repuataion,但这是我在弹出框中得到的:
- 脚本:<<文件>>的位置
- 行: 13
- 字符:1
- 错误:找不到路径
- 编号: 800A004C
- 祸害:Microsoft VBScript 运行时错误
我得到的错误是在我的脚本中使用 %appdata%。从上面的代码中,我刚刚编辑了文件位置"H:\appdata...."到 "%appdata%....."
FileSystemObject
方法不会扩展环境变量。你需要自己做,例如这样:
...
Set sh = CreateObject("WScript.Shell")
config = sh.ExpandEnvironmentStrings("%APPDATA%Linkpoint360LinkPointConfig.ini")
Set objTextFile = objFSO.OpenTextFile(config, ForReading)
...
你不能在 vbscript 中可靠地做到这一点。
但是,您可以安全地假设(忽略我认为无关紧要的网络和配置文件更新问题),即配置文件位于"用户"文件夹下,并且每个用户将具有相同的AppFolder相对路径。
处理此问题类型的正常方法是使用登录脚本。