2016-06-10 17 views
1

dies wäre eine Frage noob..aber ich möchte meine Skripte tragbarer machen. lässt sich sagen, ich habe alle meine .vbs (oder irgendein Skript in irgendeinem Code der Natur) in einem USB verschlüsselt. also möchte ich das vbs auf diesem aktuellen Rechner ausführen. der USB zugewiesen in F sein: LaufwerkWie mache ich meine Skripte tragbar vbs

aber wenn ich die usb unplugged und will an einen anderen machine..it sein wird, nicht mehr F: .. aber es könnte sein E: G: oder was auch immer

Ich wollte nur wissen, wie überwinde ich das, ohne es direkt in den Skripten zu ändern, aber das Skript kann lesen, in welches Verzeichnis es zeigt.

Ich bin nicht sicher, wie diese Eigenschaft/Funktionalität aufgerufen wird.

würde aber schätzen irgendwelche Hinweise/Tipps

+2

Gibt den vollständigen Pfad des aktuell ausgeführten Skripts zurück. 'wscript.ScriptFullName' –

+2

Bearbeiten Sie Ihre Frage und veröffentlichen Sie ein Beispiel für Ihre Skripte! – Hackoo

Antwort

2

Es gibt zwei Möglichkeiten, wie Sie Ihr Skript mehr tragbar zu machen.

Der erste und wahrscheinlich am besten geeignete für Ihren Anwendungsfall ist es, zu überprüfen, auf welchem ​​Laufwerk Ihre ausführbare Datei läuft, indem Sie WScript.ScriptFullName verwenden und die ersten drei Zeichen erhalten, um den Laufwerksbuchstaben zu finden. Sie können alternativ den Skriptnamen (WScript.ScriptName) vom Ende abschneiden, um das aktuelle Arbeitsverzeichnis zu finden. Weisen Sie dies einer Variablen zu und verwenden Sie sie überall in Ihrem Code, wo Sie einen Pfad angeben.

Dim fullname : fullname = WScript.ScriptFullName 
Dim drive : drive = Mid(fullname, 1, 3) 
Dim path : path = Mid(fullname, 1, Len(fullname) - Len(WScript.ScriptName)) 
WScript.Echo "Drive = " & drive & vbcrlf & "Path = " & path 

Ein anderer Weg ist Ihr Skript erwarten run-time arguments vom Benutzer zu machen, so dass Sie genau angeben, wo Sie Dinge tun wollen.

' Make a shortcut to your script and add a parameter, 
' Or run from the command prompt with an additional parameter. 
If WScript.Arguments.Length = 0 Then 
    WScript.Echo "No arguments supplied!" 
    WScript.Quit 
End If 

WScript.Echo WScript.Arguments(0) 

Ich hoffe, dass hilft!

Verwandte Themen