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)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage