IM试图让当前目录下,并用它来无论运行应用程序所在的文件放在与不管路径如何改变
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
实际上,我怎么设置此代码,以便它做什么,我希望它正确吗? 提前致谢!
您可以使用WScript.ScriptFullName将返回执行脚本的完整路径。
然后,您可以使用字符串操作(JScript示例 ):
scriptdir = WScript.ScriptFullName.substring(0,WScript.ScriptFullName.lastIndexOf(WScript.ScriptName)-1)
或者从FileSystemObject的帮助,(VBScript中为例 ):
scriptdir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
您可以使用currentDirectory所属性。
Dim WshShell, strCurDir
Set WshShell = CreateObject("WScript.Shell")
strCurDir = WshShell.CurrentDirectory
WshShell.Run strCurDir & "\attribute.exe", 0
Set WshShell = Nothing
你的问题是没有得到的目录( fso.GetAbsolutePathName(".")
解决了当前工作目录就好了)。 即使你想脚本目录,而不是当前的工作目录,你可以很容易地确定为雅各布斯腾中描述了他的答案 。
什么在你的代码不工作是建设从目录和可执行文件的路径。 这是无效的语法:
Directory = CurrentDirectory\attribute.exe
如果你想建立一个自变量和一个文件名的路径,文件名必须指定为一个字符串(或包含字符串的变量),并且用变量目录变量级联:
Directory = CurrentDirectory & "\attribute.exe"
或(更好),你建立基于路径构建路径方法:
Directory = fso.BuildPath(CurrentDirectory, "attribute.exe")
你行
Directory = CurrentDirectory\attribute.exe
不符合我在一个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
'-----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
简单:
scriptdir = replace(WScript.ScriptFullName,WScript.ScriptName,"")