2010-06-23 3 views

Répondre

2

Je pense que cela fonctionnerait:

Dim currDir 
Set fso = CreateObject("Scripting.FileSystemObject") 
currDir = fso.GetParentFolderName(Wscript.ScriptFullName) 

Edit: Ou peut-être vous pouvez simplement faire ceci:

Replace(WScript.ScriptFullName, WScript.ScriptName, "") 
+0

THX, comment ajouter le currDir dans la syntaxe suivante? If (fso.FileExists ("currDir \ test.vbs")) Puis . . . – yael

+0

@yael: Devrait juste être comme ça je pense: 'If (fso.FileExists (currDir &" \ test.vbs ")) Then' –

1

Voici comment:

Function ExtractFilePath(PathName) 
    For x = Len(PathName) To 1 Step -1 
     If Mid(PathName, x, 1) = "\" Then Exit For 
    Next 
    ExtractFilePath = Left (PathName, x - 1) 
End Function 

ExtractFilePath(WScript.ScriptFullName) 'get current path 
0

Je pense que ce que vous voulez réellement est WshShell.CurrentDirectory. Sachez que le chemin du script n'est pas nécessairement le répertoire en cours. Ce sera le cas si vous choisissez de le configurer de cette façon, mais il est possible d'exécuter un script à partir d'un dossier différent.

Étant donné ce script CurrDir.vbs dans C: \ scripts:

' CurrDir.vbs 
' show current dir as opposed to script dir 

Dim shl 
Set shl = WScript.CreateObject("WScript.Shell") 

Say "current dir = " & shl.CurrentDirectory 
Say "script name = " & WScript.ScriptFullName 

sub Say(s) 
    WScript.Echo s 
end sub 

avec C: \ scripts dans la variable d'environnement PATH (et ".vbs" dans PATHEXT et CScript comme hôte par défaut), puis quand exécuter à partir du dossier C: \ test, ce sera le résultat:

C:\test>CurrDir 
current dir = C:\test 
script name = C:\scripts\CurrDir.vbs