FOR 迴圈指令沒有輸出

FOR 迴圈指令沒有輸出

我剛剛在 git 存儲庫中提交了一些文件:

C:\core\guidewire\Release\5.3_MT1\ClaimCenter>git diff --僅姓名頭^^ 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^^”證明這不僅僅是轉義字符造成的破壞:

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/C)050053D.F505d laimCenter/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/TeamTabLastUseramTabLastUser.

當 CMD 運行引用的命令時,會發生第二輪擴展,因此^^變為^,然後。事實上,與「master^^」不同的測試案例並不能證明任何事情,因為它最終沒有留下插入符。原始命令列只是將 HEAD 與 HEAD 進行比較,當然根本沒有更改任何檔案。

相關內容