2017-05-15 8 views
0

erfordert Ich habe eine Batch-Datei, die 4 Befehlszeileneingaben erfordert. Wenn ich die Batchdatei an der Eingabeaufforderung ausführe, zeigt sie eine Hilfemeldung an, in der Sie aufgefordert werden, 4 Werte einzugeben.Ausführen einer Batch-Datei, die Eingaben direkt aus dem Ordner

Wenn ich diese Datei direkt aus dem Ordner ausführen, öffnet es Cmd und schließt sofort.

Ist es möglich, die Batch-Datei zu ändern, so dass, wenn ich aus dem Ordner ausführen wird es die cmd öffnen und dann die Hilfemeldung anzeigen.

Folgendes ist eine Mini-Version meines Problems mit 1 Befehlseingabe. Das Skript ist für eine Lizenzdatei Generation

@ECHO OFF 
GOTO :continue 

:continue 
SETLOCAL 
IF "%1" == "" GOTO :Help 

::Set the Command Line Options 
SET ARVERSION=%1 

::Create Directory 
SET OUT_PATH=%cd% 

ECHO Initiating Generation... 

if not exist %OUT_PATH% mkdir %OUT_PATH% 

::Create License File - Calling 'Subs' will create the output with actual Version 
Subs ARVERSION %ARVERSION% Input.txt 1>%OUT_PATH%\License.txt 

ECHO Scripts are created @ %OUT_PATH% 
ECHO Generation Completed... 

GOTO :End 

:Help 
ECHO Starting License File Generation... 
ECHO Usage: 
ECHO InstallerScriptGen.bat AR_VERSION 
ECHO AR_VERSION   - Version (3.2 or 4.0 or 4.2) 
ECHO Example : InstallerScriptGen.bat 3.2.2 
ECHO Please Note that input of incorrect values will result in wrong generation. 

:End 
ENDLOCAL 
+0

siehe 'timeout /?' – elzooilogico

+0

Bitte teilen Sie eine [mcve]. – JosefZ

+0

@JosefZ Hier finden Sie das aktualisierte Minimalbeispiel. –

Antwort

1

„aus dem Ordner direkt ausgeführt“ (von dem ich nehme an, Sie bedeuten „aus dem Windows Explorer auf das Symbol klicken“) bewirkt, dass Windows Explorer das Äquivalent von CMD /C <<batchfilename>> auszuführen. Wenn sie mit /C aufgerufen wird, wird CMD beendet (und das CMD-Fenster wird geschlossen), sobald die Batch-Datei beendet wird. Sie können das Fenster lange genug geöffnet halten, um die Ausgabe zu lesen, indem Sie das Skript entweder mit dem Befehl PAUSE beenden (wodurch der Benutzer auf eine beliebige Taste drückt) oder mit dem Befehl TIMEOUT (der die angegebene Zahl wartet) Sekunden vor dem Fortfahren, ohne einen Tastendruck). Weitere Informationen finden Sie in der SS64-Hilfe für die Befehle PAUSE und TIMEOUT.

Verwandte Themen