2012-04-13 8 views
0
auszuführen

Ist es möglich, eine cmd.exe Shell/Batch-Datei zu setzen, um zu drucken, was ausgeführt werden würde, aber nicht ausführen?Stapelskript druckt den Befehl, der ausgeführt werden würde, anstatt

Zum Beispiel eine Batch-Datei angegeben, dass einige Argumente annimmt, auf der Grundlage dieser Argumente einige andere Batch-Dateien auswählt, zu laufen, diese Batch-Dateien einige Befehle ausführen, rufen Sie kann oder auch nicht andere Dateien/Befehle usw.

Ich würde gerne in der Lage sein, die Batch-Datei der obersten Ebene mit allen möglichen Kombinationen ihrer Eingabeargumente auszuführen und zu erfassen, was jede Arg-Kombination ausführen würde - ohne tatsächlich zu versuchen, sie auszuführen.

z.B. konzeptuell würde will in der Lage sein, etwas zu produzieren, wie:

mybatchfile.bat 1 2 3 > mybatchfile_1_2_3.bat 

mybatchfile.bat 99 3 42 > mybatchfile_99_3_42.bat 

wo mybatchfile_99_3_42.bat ist die Liste all das, was ausgeführt werden würde, wenn mybatchfile.bat läuft 99 3 42 (NICHT die Ausgabe diese Befehle auszuführen)

Wenn dies nicht allein cmd.exe verwenden getan werden ist es irgendwie, dies zu erreichen, indem die Batch-Skript in cygwin bash-Shell laufen

Antwort

1

in bash wir so etwas wie -x verwenden würden alle möglichen Befehle zum ausdrucken ohne Ausführung Sie. how to make bash scripts print out every command before executing Das Problem ist, dass es meines Wissens keinen genauen äquivalenten Befehl für Batch-Skripte gibt. Ich würde vorschlagen, Sie versuchen, Abdrucken:

@echo on 

am Anfang des Skripts und:

@echo off 

am Ende des Skripts, das ist der beste Ausgangspunkt.

+0

Dies verhindert nicht, dass die Befehle ausgeführt werden. –

0

Wenn Sie nicht möchten, dass die Stapeldatei die Befehle tatsächlich ausführt, können Sie vor jedem Befehl echo einfügen. Es ist zwar keine perfekte Lösung, aber es kann ein Workaround für ziemlich einfache Skripte sein.

Verwandte Themen