簡體   English   中英

用於循環變量擴展的Windows批處理腳本不起作用

[英]windows batch script for loop variable expansion not working

我正在Windows腳本數組和for循環上關注本教程。 這些示例無法正常運行,在Windows 7和10上均進行了測試。

批處理腳本教程

當我運行以下for循環時:

:: @echo off 
set list = 1 2 3 4 
(for %%a in (%list%) do ( 
    echo %%a 
))

我得到以下輸出:

set list = 1 2 3 4
(for %a in ((null)) do (echo %a  ) )

變量列表的內容未打印在for循環中。 我期待得到

1
2
3
4

有任何想法嗎?

有關使用基本批處理命令(如SET)的信息,請參閱SS64很好的信息源。 在您的情況下,如前所述,擴展變量名稱%list%如果在其定義中存在空格,則必須包含空格。 如果變量定義中不需要該空間,則只需在SET語句中將其刪除。

數組變量列表之間的空格不代表任何問題,並且在許多示例應用程序中特別方便,尤其是FOR循環,因為它們允許使用令牌來查找正確的值。 此示例有效:

@echo off 
set "list= 1 2 3 4"
for %%a in (%list%) do ( 
    echo %%a 
)

要了解在批處理腳本中使用數組的方法,請閱讀Aacini的答案:

一些專家對批量使用“數組”術語進行了辯論。 例如在DIR輸出到BAT陣列中查看dbenham的答案嗎?

暫無
暫無

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

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