簡體   English   中英

在Batch中顯示變量的問題

[英]Issue displaying variables in Batch

我試圖在批處理中顯示變量列表,但是我沒有得到變量。 我得到了命令,但刪除了%和空格。

echo 1 %11A1% %11B1% %11C1% %11D1% %11E1% %11F1% %11G1% %11H1% %11I1% %11J1%

變成

1 1A111B111C111D111E111F111G111H111I111J1

我已經在其他批次中完成了變量並且沒有問題地顯示它們。 任何幫助表示贊賞!

目前的代碼在這里: http//hastebin.com/sutasipiju.dos

您的變量命名有問題。 當它們以數字開頭時,變量名稱中帶有百分號的fisrt字符被視為參數。 因此, %11A1% (以及其他變量)將被轉換為%1 1A1 ...

從命令行,這沒有問題,因為沒有參數替換,但在批處理文件中,以數字開頭的變量會產生這種問題。

有兩種解決方案。

  • 將所有變量重命名為不以數字開頭的變量
  • 啟用延遲擴展('setlocal enabledelayedexpansion')並將sintax從%11A1%更改為!11A1!

第一個選項可能更好,因為更簡單,可以產生更少的問題,但兩者都可以使它工作

問題在於你的變量名,它不應該以數字開頭。

當批次看到echo %11A1%...

它替換了%1的第一個命令行參數,因此,假設您沒有提供任何參數,這將成為

[nothing]1A1...

解決方案:使用其他角色啟動變量。 “A..Z”是傳統的。 如果你想成為一個有點異國情調,那么$#似乎是明顯的選擇。

暫無
暫無

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

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