Seltsames Verhalten von Windows CMD beim Ausführen von Groovy
Ich habe ein tolles Skript, das Dateien umbenennt, die einem regulären Ausdruck entsprechen. Ich starte es auf diese Weise
C:\>groovy rename test.* test.txt
Es funktioniert gut.
Aber wenn ich versuche, diesen regulären Ausdruck zu übergeben:
C:\>groovy rename test\.(.*) $1_TEST_$1
Die Befehlszeile gibt eine Nachricht zurück:
The syntax of the command is incorrect
und es ist nicht mein Drehbuch - es istcmd
das schreibt das. Mein Skript wird nie ausgeführt. Es passiert auch, wenn ich die Argumente (Regex) in Anführungszeichen setze.
Q: Warum? Wie kann ich einen beliebigen regulären Ausdruck als Parameter übergeben?
Da niemand herausfinden kann, was los ist, habe ich ein noch einfacheres Beispiel angeführt:test.groovy
println args[0]
Ich führe es aus:groovy test Bob
und die Ausgabe ist nicht überraschend,Bob
. Aber wenn ich laufe, z.groovy test .*
Ich bekommeThe syntax of the command is incorrect
. Wenn ich es laufen lassegroovy test *
dann kommt ein Name einer pdf - Datei heraus (das ist zufällig in der gleichen Richtung wietest.groovy
)