[英]How to execute git log on windows cmd?
我有以下命令:
git log --pretty=tformat:'<li>%h %ci %d %s</li>' > changelog.html
這將git日志保存到changelog.html文件中。 當我通過git bash執行它時,它工作正常,但是當我將此代碼放在.bat文件中並運行它時,我收到以下錯誤:
The system could not find the specified file
我認為這是由格式參數的引號引起的,但我不知道如何解決問題...有沒有辦法逃避引號呢?
在Windows批處理文件中,您必須:
%
字符。 他們被視為文字 >
: git log --pretty=tformat:"<li>%%h %%ci %%d %%s</li>" > changelog.html
^
來轉義未加引號的字符串中的單個字符(例如, ^%
表示文字%
,或^|
表示文字|
),但這不起作用 ,因為以下警告 : ^
來轉義空格字符以形成具有嵌入空格的單個參數; 例如, foo^ bar
仍然分為2個參數, foo
和bar
。 來自Unix世界的讀者的一些背景 :
for
循環) - 它們不能用於分隔具有嵌入空格的字符串。 $
雙引號的bash字符串作為\\$
防止膨脹,你有逃跑%
作為%%
在雙引號字符串,以防止在批處理文件的擴展 ,因為標識符括在%
字符。 (例如, %PATH%
)表示要擴展的變量引用 。
cmd.exe
提示不需要逃逸%
,而批處理文件執行。 更具體地說, %
chars。 在交互式命令行中被視為文字, 除非它們是對現有變量的變量引用的一部分(例如, %windir%
),在這種情況下會發生擴展。 這一奇怪現象是,原因for
循環必須寫成for %i in ...
( 一個 %
)在命令行上,並作為for %%i in ...
( 二 %
在批處理文件)。 ~
參數修飾符可用於剝離它們 ; 例如, %~1
返回沒有雙引號的第一個參數(如果有的話)。 \\
在一POSIX殼沒有引號的字符串-escaping 各個字符是^
-escaping,但是,如上所述, ^
不能使用,以形成帶有嵌入空白一個參數逸出的空間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.