0

我对所有这些 VBS 东西都很陌生,因为基本上我需要做的就是制作一个简单的 VBS 脚本,我可能已经编写了该脚本,但是,我的问题是当我第一次执行它时它会给我800A0035或错误800A004C一台特定的 PC,只要我第二次执行它,它就可以正常运行并完成它应该做的事情。顺便说一句,在我自己的计算机上,即使在第一次执行时它也可以正常工作。我知道这些错误与错误的路径有关,但我已经多次检查了我的脚本,我 100% 肯定它们是正确的。

这是脚本:

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile "rar.bat" , "rarp.bat"
'HideBat.vbs
CreateObject("Wscript.Shell").Run "rarp.bat", 0, True

该脚本应该做的是将rar.bat文件重命名为rarp.bat并运行该批处理文件 ( rarp.bat) 而不会弹出命令提示符。我猜批处理文件的作用无关紧要,但无论如何,它只是运行WinRAR

rar.bat文件和 VBS 脚本在同一个文件夹中,这就是我在脚本中使用相对路径的原因。我不能使用绝对路径,因为我需要在多台计算机上运行脚本。

我在互联网上的某处读到默认情况下 VBS 脚本在C:\Windows\System32使用相对路径时首先查找文件。我什至尝试在脚本中使用绝对路径,但也没有用。这是我需要它们的样子:%systemdrive%\users\%username%\appdata\roaming\rar.bat但这在 VBS 脚本中根本不起作用。

我真的认为我需要的是一个简单的脚本,但显然很难让它正常工作。我会非常感谢那些帮助我的人。

非常感谢您。

问候。

4

1 回答 1

1

您的脚本(至少是已发布的部分)可能会出错的唯一方法是找不到要重命名的源文件,您应该添加完整的脚本和错误消息以确保。我想这是由你的电脑上的安全设置引起的,它比其他电脑上的更宽容,例如 UAC ?在另一台电脑上,尝试将文件放在像 c:\test 这样的映射中,然后在检查文件 rar.bat 确实存在于同一个映射中之后再次运行它。您在另一台电脑上是否有相同的凭据(管理员)?如果您只想运行隐藏的bat文件,为什么要重命名?

你是怎么下载bat的?然后如何调用脚本?可能是第二次不再是问题的时间问题。在这种情况下,如果文件已经准备好,请检查您的脚本,并在没有的情况下循环睡眠

如果你想使用绝对路径,你可以试试这个

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("PROCESS")
path = WshSysEnv("USERPROFILE") & "\appdata\roaming\rar.bat"
wscript.echo path
objFSO.MoveFile path , "rarp.bat"
CreateObject("Wscript.Shell").Run "rarp.bat", 1, True
于 2012-09-01T22:08:27.840 回答