簡體   English   中英

如何在jenkins構建步驟的Windows10批處理命令中轉義%?

[英]How to escape % in windows10 batch command in jenkins build step?

我在jenkins Windows批處理命令構建步驟中定義了以下命令:

for /r %%f in (.\*.exe) do echo %%f

但是echo不會顯示文件名。 相反,它只是將%f打印到控制台。

我嘗試使用以下單個% ,但這無濟於事。 它將f打印到控制台。

for /r %f in (.\*.exe) do echo %f

如何在jenkins構建步驟中轉義%字符? 我不確定它是否僅與詹金斯有關。

在Windows 10上的Jenkins 2.60.2上,我的目錄中有兩個Firefox安裝程序可執行文件,它們for /r %%f in (.\\*.exe) do echo %%f運行for /r %%f in (.\\*.exe) do echo %%f在Windows Batch命令中for /r %%f in (.\\*.exe) do echo %%f ,我得到以下輸出:

Building in workspace C:\Program Files (x86)\Jenkins\workspace\Test
[Test] $ cmd /c call C:\WINDOWS\TEMP\jenkins4832870824680456992.bat
C:\Program Files (x86)\Jenkins\workspace\Test>for /R %f in (.\*.exe) do echo %f 
C:\Program Files (x86)\Jenkins\workspace\Test>echo C:\Program Files (x86)\Jenkins\workspace\Test\.\Firefox Installer.en-US.exe 
C:\Program Files (x86)\Jenkins\workspace\Test\.\Firefox Installer.en-US.exe

C:\Program Files (x86)\Jenkins\workspace\Test>echo C:\Program Files (x86)\Jenkins\workspace\Test\.\Firefox Installer.exe 
C:\Program Files (x86)\Jenkins\workspace\Test\.\Firefox Installer.exe

如您所見,在運行批處理命令時,它會將雙%%正確地視為單個% ,這是有道理的,因為它只對創建的臨時批處理文件調用cmd /c call ,這是正確的方法在批處理文件中執行%語法。

我認為從不同版本的Jenkins來看,這種行為可能不會發生太大變化,但是您運行的是哪個版本? 您可以發布批處理命令的完整輸出嗎? 也許那里有些東西可以給我們一個線索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM