xargs unter Windows: Keine solche Datei oder Verzeichnis

1276
gerrod

Ich wollte die Tags in meinem lokalen Git-Repository mit denen auf unserem Remote-Server erneut synchronisieren, indem ich diese Antwort von StackOverflow verwendete :

git tag -l | xargs git tag -d git fetch --tags 

Ich habe git für Windows Portable installiert, das xargsvon FindUtils für Windows (wie ich es am besten sagen kann) enthält.

Wenn ich den ersten Teil des Befehls ausführe, bekomme ich nur Folgendes:

xargs: git: Keine solche Datei oder Verzeichnis

Wenn ich den Befehl zur Ausführung modifiziere:

git tag -l | xargs echo 

Es "echos" richtig die Tags für mich. Meine einzige Schlussfolgerung ist daher, dass xargs aus irgendeinem Grund ausführbare Dateien nicht aus dem Pfad lösen kann.

Wie kann ich xargs dazu bringen, das, was an ihn übergeben wurde, ordnungsgemäß auszuführen (ohne dazu den vollständigen Pfad zu übergeben git.exe?)

2
Haben Sie dieses Problem jemals gelöst? Ich sehe das Gleiche itslittlejohn vor 6 Jahren 0
Nein, ich bin nie auf den Grund gegangen: - | gerrod vor 6 Jahren 0
Den exakten Befehl in git bash auszuführen, hat gut funktioniert, also ging ich mit. \ _ (ツ) _ / ¯ itslittlejohn vor 6 Jahren 0

1 Antwort auf die Frage

1
Chris Oldwood

Ich benutze den Gnu- Port unter Windows der Unix-Tools und bekomme ein ähnliches Problem, aber die Fehlermeldung ist immer Invalid argument, z

> printf "Hello World!" | xargs printf "%s %s" xargs: printf: Invalid argument 

Eine Lösung scheint zu sein, die "sprichwörtliche" zusätzliche Ebene der Indirektion zu verwenden, beispielsweise eine Shell wie cmd.exe, um den Befehl tatsächlich aufzurufen:

> printf "Hello World!" | xargs cmd /c printf "%s %s" Hello World!