Keine Ausgabe vom FOR-Schleifen-Befehl

382
gws

Ich habe einige Dateien, die ich gerade in meinem Git Repo festgelegt habe:

C: \ core \ guidewire \ Release \ 5.3_MT1 \ ClaimCenter> git diff --name-only head ^^ ClaimCenter / modules / configuration / config / web / pcf / TabBar.pcf ClaimCenter / modules / configuration / config / web / pcf /team/user/TeamUserClaims.pcf ClaimCenter / modules / configuration / gsrc / citizens / cc / pcf_gs / team / TeamTabLastUser.gs

Jetzt möchte ich die Pfade einfangen und mit ihnen etwas anderes machen, aber der git diffBefehl erzeugt (?) FOR /FKeine Zeilen für die Wiederholung:

C: \ core \ guidewire \ Release \ 5.3_MT1 \ ClaimCenter> für / f% p in ('git diff - name-only head ^^') do @ (echo% p)

C: \ core \ guidewire \ Release \ 5.3_MT1 \ ClaimCenter>

Was ist denn hier los? Zuerst hatte ich erwartet, dass es ein Fehler in meiner Syntax war, aber der Unterschied zu anderen Zielen funktioniert innerhalb der for-Schleife. Zum Beispiel beweist "master ^^", dass es nicht nur der Escape-Charakter ist, der Chaos spielt:

C: \ core \ guidewire \ Release \ 5.3_MT1 \ ClaimCenter> für / f% p in ('git diff - name-only master ^^') do @ (echo% p) ClaimCenter / modules / configuration / config / rules /Reopne/de/contact/cro05000Apply/de/de/contact/cro05000/index/config/cro05000/index/config/control/de/contact/cro05000/index/config/contract/cro05000/index/config/contract/cro05000/de/contact/cro05000/index/config/control/control/control/content/cru05000/index.html config / web / pcf / team / user / TeamUserClaims.pcf ClaimCenter / modules / configuration / gsrc / Citizens / cc / pcf_gs / team / TeamTabLastUser.gs

1
Wir alle wissen, dass CMD.EXE * idiosyncratic * ist, um es gelinde auszudrücken, aber was besonders frustrierend ist, ist der einzige Fall, den ich brauche (Dateien, die in HEAD geändert wurden). Der einzige Fall, den ich gefunden habe, der nicht funktioniert! gws vor 5 Jahren 0

1 Antwort auf die Frage

0
gws

Doppelte Escape "head ^" bis "head ^^^^" :

C: \ core \ guidewire \ Release \ 5.3_MT1 \ ClaimCenter> für / f% p in ('git diff - name-only head ^^^^') do @ (echo% p)
ClaimCenter / modules / configuration / config /web/pcf/TabBar.pcf
ClaimCenter / modules / configuration / config / web / pcf / team / benutzer / TeamUserClaims.pcf
ClaimCenter / modules / configuration / gsrc / citizens / cc / pcf_gs / team / TeamTabLastUser.gs

Wenn CMD den zitierten Befehl eine zweite Runde der Erweiterung läuft erfolgt so ^^wird ^und dann . Tatsächlich beweist der gegen "master ^^" abweichende Testfall nichts, da er ohne Carets endet. Die ursprüngliche Befehlszeile unterschied einfach HEAD gegen HEAD, wobei natürlich keine Dateien geändert wurden.