我问你们如何从.bat
运行.vbs
文件,而不必指定其包含的驱动器C:
。我想尝试进行某种安装,我做了一个假装载或安装屏幕,.bat
文件打开并从.vbs
执行迷你动画。这个问题是当我发送.vbs
.bat
时,它始终表示发生了错误;这就是我发现的:
CreateObject("WScript.Shell").Run("""C:\Users\Name\Desktop\Thingy.bat""")
此脚本的问题在于我发送给它的人还需要与我C:
中的名称相同的名称。如何更改此脚本,还是不可能?
答案 0 :(得分:0)
下一步评论代码片段应该完成这项工作(大多数语句和命令都是为了易于理解而逐项列出的):
option explicit
On Error GoTo 0
' declare variables
Dim WshShell, sUserProfile, strCommand, fso
' assign all object references to appropriate variables
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
' get an environment variable's expanded value
sUserProfile = WshShell.ExpandEnvironmentStrings("%UserProfile%")
' build command to run
strCommand = """" _
& fso.BuildPath( fso.BuildPath( sUserProfile, "Desktop"), "Thingy.bat") & """"
Wscript.Echo "(debug) command to run" & vbNewLine & strCommand
WshShell.Run strCommand
答案 1 :(得分:0)
如果批处理文件始终在桌面上,您应该像这样使用%userprofile%:
CreateObject("WScript.Shell").Run(chr(34) & "%userprofile%\Desktop\Thingy.bat" & chr(34))
当批处理文件和vbscript文件都在同一个文件夹中时,或类似的东西:
Set FSO = CreateObject("Scripting.FileSystemObject")
scriptPath = FSO.GetParentFolderName(wscript.ScriptFullName)
wscript.echo scriptPath
MyBatchFile = chr(34) & scriptPath & "\Thingy.bat" & chr(34)
wscript.echo MyBatchFile
CreateObject("WScript.Shell").Run(MyBatchFile)