batch-file - 是否可以知道 for 循环内的当前循环索引?

标签 batch-file cmd

我有一个像这样的 .bat 文件:

@echo OFF

if "%1" == "" (
    set pattern=*
) else (
    set pattern=%1
)

for %%g in (%pattern%) do echo   %%g

执行listfile.bat setenv*.bat,它输出如下内容:

  setenv-win7x64-chk.bat
  setenv-win7x64-fre.bat
  setenv-winxp-chk.bat
  setenv-winxp-fre.bat

我的问题是:如何使其输出如下:

[1]  setenv-win7x64-chk.bat
[2]  setenv-win7x64-fre.bat
[3]  setenv-winxp-chk.bat
[4]  setenv-winxp-fre.bat

是否有一个 secret 变量可以告诉我当前的循环索引? -- 就像 Autohotkey 的 A_Index 变量一样。

最佳答案

答案是“否”,但您可以通过非常简单的方式添加计数变量:

@echo OFF
setlocal EnableDelayedExpansion

if "%1" == "" (
    set pattern=*
) else (
    set pattern=%1
)

set i=0
for %%g in (%pattern%) do (
   set /A i+=1
   echo [!i!]  %%g
)

关于batch-file - 是否可以知道 for 循环内的当前循环索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30509367/

相关文章:

string - 从命令行 cmd 启动 Windows 10 UWP 应用程序

python - 如何使用python卸载程序?

powershell - CMD:如何在 cmd 中转义此 powershell 命令?

powershell - 将参数从 bat 文件传递​​给 PowerShell

visual-studio-2012 - 路径中存在非法字符

batch-file - 批处理文件 : Variable within a variable

if-statement - 如何检查服务是否通过批处理文件运行,如果服务未运行则将其停止?

batch-file - 错误: "is not recognized as an internal or external command, operable program or batch file"

windows - 如何将日期附加到 xcopy 中的目录路径

windows - 如何将命令行参数传递给由 doskey 调用的 PowerShell 脚本