簡體   English   中英

批處理文件中的for循環變量

[英]Variable in for loop in a batch file

這是我的批處理文件:

    @echo off

    cd "D:/myFiles"

    for /r %%filename in (*) do (

    set f=%%filename

    echo %f%

    )

    pause

我期望的是,它將列出myFiles目錄中的所有文件。

但是我得到的是“回聲關閉”的次數與目錄“ myFiles”中文件的數量相同。

    echo %%filename

我可以列出文件名,但是我必須對文件名執行更多操作,因此必須將其存儲在變量中,就像當前存儲在變量f中一樣。

任何幫助將不勝感激。

您需要使用setlocal enabledelayedexpansion來重新評估在循環內設置的變量。 變量擴展需要!var! 用法,而不是%var% 例如

setlocal enabledelayedexpansion
@echo off

for /r   %%f in (*) do (
    set n=%%f
    echo !n!
)

暫無
暫無

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

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