Cod*_*yer 40 directory vbscript
我试图获取当前目录并使用它来运行应用程序,无论文件放在何处,无论路径如何更改
Dim fso: set fso = CreateObject("Scripting.FileSystemObject")
Dim CurrentDirectory
CurrentDirectory = fso.GetAbsolutePathName(".")
Dim Directory
Directory = CurrentDirectory\attribute.exe
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "Directory" & Chr(34), 0
Set WinScriptHost = Nothing
Run Code Online (Sandbox Code Playgroud)
我如何实际设置此代码,以便它做我想要它正确做的事情?提前致谢!
Jak*_*erg 42
您可以使用WScript.ScriptFullName,它将返回执行脚本的完整路径.
然后,您可以使用字符串操作(jscript示例):
scriptdir = WScript.ScriptFullName.substring(0,WScript.ScriptFullName.lastIndexOf(WScript.ScriptName)-1)
Run Code Online (Sandbox Code Playgroud)
或者从FileSystemObject获得帮助,(vbscript示例):
scriptdir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
Run Code Online (Sandbox Code Playgroud)
Pan*_*lov 29
您可以使用CurrentDirectory属性.
Dim WshShell, strCurDir
Set WshShell = CreateObject("WScript.Shell")
strCurDir = WshShell.CurrentDirectory
WshShell.Run strCurDir & "\attribute.exe", 0
Set WshShell = Nothing
Run Code Online (Sandbox Code Playgroud)
Ans*_*ers 24
您的问题是没有获取目录(fso.GetAbsolutePathName(".")解析当前工作目录就好了).即使你想要脚本目录而不是当前的工作目录,你也可以轻松地确定正如Jakob Sternberg在他的回答中所描述的那样.
在代码中不起作用的是从目录和可执行文件构建路径.这是无效的语法:
Run Code Online (Sandbox Code Playgroud)Directory =CurrentDirectory\attribute.exe
如果要从变量和文件名构建路径,则必须将文件名指定为字符串(或包含字符串的变量),并与变量目录变量连接:
Directory = CurrentDirectory & "\attribute.exe"
Run Code Online (Sandbox Code Playgroud)
或者(更好)使用BuildPath方法构造路径:
Directory = fso.BuildPath(CurrentDirectory, "attribute.exe")
Run Code Online (Sandbox Code Playgroud)
小智 6
你的路线
Directory = CurrentDirectory\attribute.exe
Run Code Online (Sandbox Code Playgroud)
与我在vbscript说明手册中遇到的任何功能都不匹配.以下适用于我,不知道您期望"attribute.exe"驻留的位置/位置.
dim fso
dim curDir
dim WinScriptHost
set fso = CreateObject("Scripting.FileSystemObject")
curDir = fso.GetAbsolutePathName(".")
set fso = nothing
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run curDir & "\testme.bat", 1
set WinScriptHost = nothing
Run Code Online (Sandbox Code Playgroud)
'-----Implementation of VB6 App object in VBScript-----
Class clsApplication
Property Get Path()
Dim sTmp
If IsObject(Server) Then
'Classic ASP
Path = Server.MapPath("../")
ElseIf IsObject(WScript) Then
'Windows Scripting Host
Path = Left(WScript.ScriptFullName, InStr(WScript.ScriptFullName, WScript.ScriptName) - 2)
ElseIf IsObject(window) Then
'Internet Explorer HTML Application (HTA)
sTmp = Replace( Replace(Unescape(window.location), "file:///", "") ,"/", "\")
Path = Left(sTmp, InstrRev( sTmp , "\") - 1)
End If
End Property
End Class
Dim App : Set App = New clsApplication 'use as App.Path
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
171643 次 |
| 最近记录: |