Нет выходных данных от команды цикла FOR over

Нет выходных данных от команды цикла FOR over

У меня есть несколько файлов, которые я только что закоммитил в свой git-репозиторий:

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

Теперь я хочу захватить пути и сделать с ними что-нибудь еще, но git diffкоманда не создает(?) никаких строк для FOR /Fитерации:

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

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

Что тут происходит?Сначала я думал, что это какая-то ошибка в моем синтаксисе, но сравнение с другими целями работает внутри цикла for. Например, "master^^" доказывает, что это не просто символ escape, который творит хаос:

C:\core\guidewire\Release\5.3_MT1\ClaimCenter>for /f %p in ('git diff --name-only master^^') do @( echo %p ) ClaimCenter/modules/configuration/config/rules/Reopened/ClaimReopened_dir/CRO05000ApplyCustomReopenRule_dir/CRO05010AssignToOriginalAdjuster.gr ClaimCenter/modules/configuration/config/rules/Reopened/ClaimReopened_dir/CRO05000ApplyCustomReopenRule_dir/CRO05030DefaultAssignment.gr 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

решение1

Двойной переход "head^" в "head^^^^":

C:\core\guidewire\Release\5.3_MT1\ClaimCenter>for /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/user/TeamUserClaims.pcf
ClaimCenter/modules/configuration/gsrc/citizens/cc/pcf_gs/team/TeamTabLastUser.gs

Когда CMD запускает указанную команду, происходит второй раунд расширения, так что ^^становится ^и затем . Фактически, тестовый пример, сравнивающий с "master^^", ничего не доказывает, так как в итоге не остается ни одного символа каретки. Исходная командная строка просто сравнивала HEAD с HEAD, что, конечно, не содержало никаких изменений в файлах.

Связанный контент