Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 可以知道for循环中的当前循环索引吗?_Batch File_Cmd - Fatal编程技术网

Batch file 可以知道for循环中的当前循环索引吗?

Batch file 可以知道for循环中的当前循环索引吗?,batch-file,cmd,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

我有这样一个.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

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

为了简单起见,我建议使用工具进行枚举:

( for %%g in (%pattern%) do @echo %%g ) | find /n /v ""

为了简单起见,我建议使用工具进行枚举:

( for %%g in (%pattern%) do @echo %%g ) | find /n /v ""
答案是“否”,但您可以通过非常简单的方式添加计数变量:

@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
)
答案是“否”,但您可以通过非常简单的方式添加计数变量:

@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
)

我建议不要使用
cmd.exe
shell脚本,而是使用PowerShell。它在几乎所有可以想象的方面都非常优秀。我建议不要使用
cmd.exe
shell脚本,而是使用PowerShell。它在几乎所有可以想象的方面都非常出色。好的提示,最好在嵌套回声之前添加一个@。好的提示,最好在嵌套回声之前添加一个@。