在windows批处理中使用循环表



在批处理文件的for循环中使用表时遇到问题。

这是我的代码:

@echo off
SET /P input1=Nombre de camion : 
set nombreDeCamion=%input1%
for /l %%f in (1,1,%nombreDeCamion%) DO (
    set index=%%f
    SET /P input=Entrer le no du camion: 
    setlocal EnableDelayedExpansion
    set tableauNoCamion[%index%]=!input!
    echo You entered !tableauNoCamion[%index%]!
    endlocal
)
for %%n in (%tableauNoCamion%) DO (
    setlocal enableDelayedExpansion
    echo %%n
    endlocal
)
pause

在第二个循环中,我想看看我的表是否填充良好。

我喜欢用用户输入的数据填充名为tableauDeCamion的表。之后,我想使用这个表来最终重命名一些文件。我已经尝试过/r %%f in (*.jpg) DO传递所有JPG文件,效果很好。如何在该循环中使用表tableauDeCamion

有一个主要问题

set tableauNoCamion[%index%]=!input!
echo You entered !tableauNoCamion[%index%]!

因为%index%将在for ...%%f解析时用index的内容进行评估

根本不用为index而烦恼;使用

set tableauNoCamion[%%f]=!input!
echo You entered !tableauNoCamion[%%f]!

至于第二个循环,你可以使用

set tableauNoCamion

for /f "tokens=1*delims==" %%a in ('set tableauNoCamion') do echo %%a

setlocal enabledelayedexpansion
for /L %%a in (1,1,%nombreDeCamion%) do echo !tableauNoCamion[%%a]!
endlocal

(所有航空代码-未经测试)

还有其他的——这取决于你想要什么样的报告。

至于你想对*.jpg或非*.jpg文件做什么,这对我来说是个谜…


啊,是的——问题是,当达到匹配的endlocal时,在setlocal之后对环境所做的任何更改都会被撤消。

Hee是个修正案。。。

@echo off
setlocal EnableDelayedExpansion
SET /P input1=Nombre de camion : 
set nombreDeCamion=%input1%
for /l %%f in (1,1,%nombreDeCamion%) DO (
    set index=%%f
    SET /P input=Entrer le no du camion: 
    set tableauNoCamion[%%f]=!input!
    echo You entered !tableauNoCamion[%%f]!
)
echo===============
SET tableaunocamion
echo===============
for /L %%a in (1,1,%nombreDeCamion%) do echo !tableauNoCamion[%%a]! 
echo===============
for /f "tokens=2,3delims=[]=" %%a in ('SET tableaunocamion') do echo %%a. %%b
GOTO :EOF

注意:我为在cmd会话中运行编写代码。如果您从"快捷方式"运行,则需要战略性地插入pause

以下是示例结果:(输入4,11,22,33,44)

Nombre de camion : Entrer le no du camion: You entered 11
Entrer le no du camion: You entered 22
Entrer le no du camion: You entered 33
Entrer le no du camion: You entered 44
==============
tableauNoCamion[1]=11
tableauNoCamion[2]=22
tableauNoCamion[3]=33
tableauNoCamion[4]=44
==============
11 
22 
33 
44 
==============
1. 11
2. 22
3. 33
4. 44

相关内容

  • 没有找到相关文章

最新更新