So führen Sie VBScript über die Befehlszeile ohne Cscript / Wscript aus

7

Ich bin ein Anfänger in VBScript. Ich googelte es & amp; Ich habe erfahren, dass wir VBScript über die Befehlszeile ausführen können, indem wir den folgenden Befehl ausführen:

Zum Beispiel lautet mein VBScript-Name Converter.vbs & amp; Es ist im Ordner D:\VBS vorhanden.

Ich kann es durch folgende Methoden ausführen:

%Vor%

ODER

%Vor%

Nun möchte ich den Befehl VBScript ohne Cscript oder Wscript ausführen, indem Sie einfach den Namen des VBScript-Namens, d. h. Converter, eingeben.

Ich möchte den vollständigen Pfad von VBSCRIPT EVERYTIME NICHT ANGEBEN.

Kann mir bitte jemand sagen, wie das geht?

    
Solution Seeker 15.04.2014, 04:01
quelle

4 Antworten

9

Ich werde das in mehrere Teile aufteilen, da jeder Teil einzeln gemacht werden kann. (Ich sehe die ähnliche Antwort, aber ich werde hier eine detailliertere Erklärung geben ..)

Erster Teil Um nicht "CScript" (oder "WScript") eingeben zu müssen, müssen Sie Windows mitteilen, wie eine * .vbs-Skriptdatei gestartet werden soll. In My Windows 8 (ich kann nicht sicher sein, dass alle diese Befehle genau wie hier in älteren Windows funktionieren, aber der Prozess ist der gleiche, auch wenn Sie die Befehle leicht ändern müssen), starten Sie ein Konsolenfenster (auch "Eingabeaufforderung" genannt), oder aka [falsch] "DOS-Eingabeaufforderung") und geben Sie " assoc .vbs " ein. Das sollte zu einer Antwort führen wie:

%Vor%

Dann geben Sie " ftype VBSFile " ein, was zu einer Antwort von:

führen sollte %Vor%

-OR -

%Vor%

Wenn diese beiden bereits wie oben definiert sind, ist Ihr Windows bereits eingerichtet, um zu wissen, wie eine * .vbs-Datei gestartet wird. (BTW, WScript und CScript sind das gleiche Programm und verwenden unterschiedliche Namen. WScript startet das Skript wie ein GUI-Programm und CScript startet es wie ein Befehlszeilenprogramm. Weitere Informationen finden Sie in den anderen Websites und / oder in der Dokumentation und Vorbehalte.)

Wenn einer der Befehle nicht wie oben angesprochen (oder ähnliche Antworten, wenn der von assoc gemeldete Dateityp und / oder der von ftype ausgeführte Befehl unterschiedliche Namen oder Positionen haben), können Sie diese selbst eingeben:

%Vor%

-und / oder -

%Vor%

Sie können auch " help assoc " oder " help ftype " eingeben, um zusätzliche Informationen zu diesen Befehlen zu erhalten, die häufig nützlich sind, wenn Sie bestimmte Programme automatisch ausführen möchten Einfach einen Dateinamen mit einer bestimmten Erweiterung eingeben. (Seien Sie jedoch vorsichtig, da einige Dateierweiterungen speziell von Windows oder von Ihnen installierten Programmen eingerichtet wurden, damit sie korrekt funktionieren. Überprüfen Sie immer die aktuell zugewiesenen Werte von assoc / ftype und speichern Sie sie gegebenenfalls in einer Textdatei stelle sie wieder her.)

Zweiter Teil , um das Eintippen der Dateierweiterung beim Eingeben des Befehls aus dem Konsolenfenster zu vermeiden. Es ist hilfreich zu wissen, wie Windows (und das Programm CMD.EXE) Befehle findet, die Sie eingeben nächster) Teil. Wenn Sie einen Befehl eingeben, verwenden wir "querty" als Beispielbefehl, das System versucht zunächst, den Befehl in seiner internen Befehlsliste zu finden (über Einstellungen in der Windows-Registrierung für das System selbst oder in dem Fall programmiert) von CMD.EXE). Da es keinen solchen Befehl gibt, wird versucht, den Befehl in der aktuellen Umgebungsvariablen% PATH% zu finden. In älteren Versionen von DOS / Windows würde CMD.EXE (und / oder COMMAND.COM) automatisch die Dateierweiterungen ".bat", ".exe", ".com" und möglicherweise ".cmd" zum Befehlsnamen hinzufügen eingegeben, es sei denn, Sie haben explizit eine Erweiterung eingegeben (z. B. "querty.bat", um die Ausführung von "querty.exe" aus Versehen zu vermeiden). In moderneren Windows wird es die Erweiterungen versuchen, die in der Umgebungsvariablen% PATHEXT% aufgeführt sind. Alles was Sie tun müssen, ist .vbs zu% PATHEXT% hinzuzufügen. Zum Beispiel ist hier mein% PATHEXT%:

%Vor%

Beachten Sie, dass die Erweiterungen das "." enthalten müssen, durch ";" getrennt werden, und dass .VBS nach .CMD aufgeführt ist, aber BEFORE .COM. Das bedeutet, wenn der Befehlsprozessor (CMD.EXE) mehr als eine Übereinstimmung findet, wird die erste aufgelistet. Das heißt, wenn ich query.cmd, querty.vbs und querty.com habe, wird es querty.cmd verwenden.

Wenn Sie dies nun ständig tun möchten, ohne% PATHEXT% einstellen zu müssen, müssen Sie die Systemumgebung ändern. Wenn Sie es in einem Konsolenfenster eingeben, wird es nur für diese Konsolenfenster-Sitzung geändert. Ich werde diesen Prozess als eine Übung für den Leser verlassen. :-P

Dritter Teil , damit das Skript ausgeführt wird, ohne immer den vollständigen Pfad eingeben zu müssen. Dieser Teil, in Bezug auf den zweiten Teil, gibt es seit den Tagen von DOS. Stellen Sie einfach sicher, dass die Datei in einem der Verzeichnisse (Ordner, für Sie Windows-Folk!) In der Umgebungsvariablen% PATH% aufgeführt ist. Mein Vorschlag ist, ein eigenes Verzeichnis zu erstellen, um verschiedene Dateien und Programme zu speichern, die Sie oft erstellen oder verwenden über das Konsolenfenster / die Eingabeaufforderung () Sorgen Sie dafür, dass Sie dies für Programme tun, die Sie über das Startmenü oder eine andere Methode ausführen ... nur das Konsolenfenster Machen Sie sich keine Sorgen mit Programmen, die von Windows oder einem automatisierten Installationsprogramm installiert werden, es sei denn, Sie wissen, was Sie tun. ).

Persönlich erstelle ich immer ein "C: \ sys \ bat" -Verzeichnis für Batch-Dateien, ein "C: \ sys \ bin" -Verzeichnis für * .exe und * .com-Dateien (zum Beispiel, wenn Sie etwas herunterladen wie "md5sum", ein MD5-Prüfsummen-Dienstprogramm, ein "C: \ sys \ wsh" -Verzeichnis für VBScripts (und JScripts mit dem Namen "wsh", da beide mit dem "Windows Scripting Host" - oder "wsh" -Programm ausgeführt werden) bald.Ich füge diese dann zu meinem System% PATH% Variable hinzu (Systemsteuerung -> Erweiterte Systemeinstellungen - Registerkarte Erweitert - Schaltfläche & gt; Umgebungsvariablen), so dass Windows sie immer finden kann, wenn ich sie eintippe.

Durch die Kombination aller drei Teile wird Ihr Windows-System so konfiguriert, dass Sie überall, wo Sie einen Befehlszeilenbefehl eingeben können, Ihr VBScript starten können, indem Sie einfach den Basisdateinamen eingeben. Sie können dasselbe für fast jeden Dateityp / jede Erweiterung tun; Wie Sie wahrscheinlich in meiner Ausgabe% PATHEXT% gesehen haben, ist mein System so eingerichtet, dass es auch Perl-Skripte (.PLX; .PLW; .PL) und Python (.PY) -Skripts ausführt. (Ich habe auch "C: \ sys \ bat; C: \ sys \ Skripte; C: \ sys \ wsh; C: \ sys \ bin" am Anfang von% PATH% gesetzt und verschiedene Batch-Dateien und Skript-Dateien abgelegt B. in diesen Verzeichnissen, so dass Windows sie immer finden kann.Dies ist auch praktisch, wenn Sie einige Befehle "überschreiben" wollen: Wenn Sie die * .bat-Dateien zuerst in den Pfad stellen, findet das System sie vor den * .exe-Dateien zum Beispiel, und dann kann die * .bat Datei das eigentliche Programm starten, indem sie den vollständigen Pfad zur aktuellen *. exe Datei gibt.Klicke die verschiedenen Seiten auf "Batch File Programming" für Details und andere Beispiele der Macht des Befehlszeile .. Es ist noch nicht tot!)

Eine letzte Anmerkung: Schaut euch einige der anderen Seiten für verschiedene Warnungen und Vorbehalte an. Diese Frage stellte ein Skript namens "converter.vbs", das gefährlich nahe an dem Befehl "convert.exe" ist, ein Windows-Programm, um Ihre Festplatte von einem FAT-Dateisystem in ein NTFS-Dateisystem zu konvertieren. Etwas, das kann Überprüfe deine Festplatte, wenn du einen Tippfehler machst!

Auf der anderen Seite können Sie sich mit diesen Techniken auch vor solchen Fehlern schützen. Verwenden Sie CONVERT.EXE als ein Beispiel .. Benennen Sie es in etwas wie "REAL_CONVERT.EXE" um, dann erstellen Sie eine Datei wie "C: \ sys \ bat \ convert.bat", die enthält:

%Vor%

Sie können CHOICE.EXE auch in modernen Windows verwenden, um den Benutzer "y" oder "n" einzugeben, wenn sie wirklich fortfahren möchten, und so weiter. Auch hier ist die Leistung von Batch- (und Scripting-) Dateien!

Hier finden Sie einige Links zu einigen guten Ressourcen, wie Sie all diese Kraft nutzen können:

Ссылка

Ссылка

Ссылка

Ссылка

Die meisten dieser Websites sind auf Batch-Dateien ausgerichtet, aber die meisten Informationen beziehen sich auf das Ausführen von Batch-Dateien (* .bat), Befehlsdateien (* .cmd) und Skripten (* .vbs, *). .js, * .pl, * .py usw.).

    
C. M. 07.12.2014 01:13
quelle
8

Wenn die vollständige Dateispezifikation oder der Dateiname des Skripts in der Befehlszeile eingegeben wird, verwendet die Shell Informationen, auf die durch

zugegriffen werden kann %Vor%

um zu entscheiden, welches Programm für das Skript ausgeführt werden soll. In meinem Fall ist es cscript.exe, in Ihrem wird es wscript.exe sein - das erklärt, warum Ihre WScript.Echos in MsgBoxes resultieren.

Wie

%Vor%

zeigt, können Sie mit // E und // S Ihren Standardhost dauerhaft auf cscript.exe umstellen.

Wenn Sie so faul sind, dass Sie nicht einmal die Erweiterung eingeben möchten, stellen Sie sicher, dass die PATHEXT-Umgebungsvariable

ist %Vor%

enthält .VBS und es gibt keine Converter.cmd (die Ihre Festplatte in eine Waschmaschine umwandelt) in Ihrem Pfad.

Aktualisieren Sie den Kommentar:

Wenn Sie nicht immer den vollständigen Pfad meines vbscript angeben wollen, können Sie:

  1. Setzen Sie Ihre CONVERTER.VBS in einen Ordner, der in der PATH-Umgebungsvariablen enthalten ist; Die Shell wird dann alle Pfade durchsuchen - gegebenenfalls unter Berücksichtigung der PATHEXT- und der ftype / assoc-Informationen - für eine passende 'ausführbare Datei'.
  2. setze eine CONVERTER.BAT / .CMD in ein Pfadverzeichnis, das eine Zeile wie cscript p:\ath\to\CONVERTER.VBS enthält

In beiden Fällen würde ich die Erweiterung eingeben, um (böse) Überraschungen zu vermeiden.

    
Ekkehard.Horner 15.04.2014 06:02
quelle
2

Warum speichern Sie das VBScript nicht einfach in einem Batch / VBScript-Datei-Hybrid? Benennen Sie die Batch-Hybrid-Converter.bat und Sie können es direkt als Konverter aus der cmd-Zeile ausführen. Sicher können Sie alle Skripts standardmäßig von Cscript oder Wscript ausführen, aber wenn Sie Ihre Vbs als Windows-Skript und nicht als Konsolenskript ausführen möchten, könnte dies später Verwirrung stiften. Setzen Sie Ihren Code einfach auf eine Batch-Datei und führen Sie ihn direkt aus.

Überprüfen Sie die Antwort - & gt; Here

Und hier ist ein Beispiel:

Converter.bat

%Vor%     
Rich 17.04.2014 17:09
quelle
1

Ich frage mich, warum Sie dies nicht in eine Batch-Datei einfügen können. Beispiel:

%Vor%

Fügen Sie den obigen Code in eine Textdatei ein und speichern Sie die Textdatei mit der Erweiterung .bat. Jetzt müssen Sie einfach diese .bat-Datei ausführen.

    
con_9 08.03.2016 05:59
quelle

Tags und Links