找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19522|回复: 6

[文件操作] 批处理For循环过程中,每次循环过程中 i 的值,分别赋值给变量a、b、c、d

[复制链接]
发表于 2022-9-22 21:56:02 | 显示全部楼层 |阅读模式
For循环过程中,每次循环过程中i的值,如何分别中断一下,分别赋值给变量a、b、c、d、e、f?
  1. for /r . %%i in (*.txt) do (
  2. set "a=%%i"
  3. )
  4. Echo %a%
  5. pause
复制代码
这个变量a 最后把结果全都放在一起了。
请问 能不能在循环的过程中,把每次的结果分别赋值给a b c d e f ?
发表于 2022-9-23 08:00:03 | 显示全部楼层
  1. @Echo off&SetLocal EnableDelayedExpansion&set n=0
  2. for /r %%i in (*.txt)do set /a n+=1&call set "a%%n%%=%%i"
  3. for /l %%i in (1,1,%n%)do Echo !a%%i!
  4. pause
复制代码
发表于 2022-9-23 08:31:57 | 显示全部楼层
本帖最后由 Echo11 于 2022-9-23 08:33 编辑

回复 1# andycker

注意计数器不能用n这种单字母,因为你可能把它当作变量了。
最多支持A-Z 26个变量
  1. @ECHO OFF
  2. setlocal EnableDelayedExpansion
  3. SET count=9
  4. SET "10=A"& SET "11=B"& SET "12=C"& SET "13=D"& SET "14=E"& SET "15=F"& SET "16=G"& SET "17=H"& SET "18=I"& SET "19=J"& SET "20=K"& SET "21=L"& SET "22=M"& SET "23=N"& SET "24=O"& SET "25=P"& SET "26=Q"& SET "27=R"& SET "28=S"& SET "29=T"& SET "30=U"& SET "31=V"& SET "32=W"& SET "33=X"& SET "34=Y"& SET "35=Z"
  5. for /r . %%i in (*.txt) do SET /A count+=1&CALL :SetValue !count! "%%~i"
  6. ECHO.1、直接按需调用:
  7. Echo.A:%A%
  8. Echo.B:%B%
  9. Echo.C:%C%
  10. Echo.D:%D%
  11. Echo..:...
  12. Echo.Y:%Y%
  13. Echo.Z:%Z%
  14. ECHO.
  15. ECHO.2、按A-Z顺序打印或调用:
  16. for /L %%i in (10,1,35) do CALL :Print !%%i!
  17. pause&goto:eof

  18. :SetValue <变量名词典索引> <赋值>
  19. SET !%~1!=%~2
  20. goto:eof

  21. :Print <变量>
  22. Echo.%~1:!%~1!
  23. goto:eof
复制代码
发表于 2022-9-23 08:43:16 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2022-9-23 09:06 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /r %%i in (*.txt) do set /a n+=1&set m=000!n!&set "Var!m:~-4!=%%i"
  3. set Var
  4. pause
复制代码
 楼主| 发表于 2022-9-23 17:12:15 | 显示全部楼层
回复 2# smss


    感谢你在百忙中解答。我需要研究一下,你写的代码中的几个百分号:call set "a%%n%%=%%i"  。乍一看还真蒙圈了
 楼主| 发表于 2022-9-23 17:14:08 | 显示全部楼层
回复 3# Echo11


    谢谢你的杰作~~~ 牛
 楼主| 发表于 2022-9-23 17:21:27 | 显示全部楼层
qixiaobin0715 发表于 2022-9-23 08:43



    学习了,这个方法真的太棒了~~ 不论有几个变量 他都自动set出来了。给你点赞
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 17:17 , Processed in 0.019619 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表