[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[已解决]批处理命令for如何获取目录后设置为独立变量(将变量值作为变量名)?

测试环境: R盘下有 a b c d 四个文件夹(文件夹数量不固定, 此处仅为例子)
目的: 通过 for 获取这些文件夹并对每个文件夹设置一个变量(对应为1 2 3 4), 以便批处理后面通过这些变量来输出显示.


其实就是想使用变量的值来作为下一个变量名, 同时这一个变量存入获取到的文件夹名.
PS: 目的需要不产生临时文件

解决方法
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. for /f %%i in ('dir /b /ad') do (
  4. set /a num+=1
  5. set !num!=%%i
  6. echo !num!. %%i
  7. )
  8. echo,
  9. set /p i=请输入要操作的用户目录编号:
  10. echo !%i%!
  11. ENDLOCAL
  12. pause
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 极品小猫 于 2012-8-18 19:39 编辑
还有更高级的:
悬崖之树 发表于 2012-8-18 17:32



    感谢你的回复, 其实你这两段代码我都明白. 看到 echo !%a%! 我才想起原来是我后面的代码存在引用问题.
哈 ~ 脑子卡壳在 for 那里了

TOP

还有更高级的:
  1. @echo off & setlocal ENABLEDELAYEDEXPANSION
  2. set a=abc
  3. set %a%=520
  4. echo !%a%!
  5. pause
复制代码
1

评分人数

    • 极品小猫: echo !%a%! 提醒了我变量引用的问题技术 + 1
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

下面的代码可以实现把变量值作为变量名
  1. @echo off
  2. set a=abc
  3. set %a%=520
  4. echo %abc%
  5. pause
复制代码
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

回复 3# 极品小猫


    哦
         think

TOP

借个地方
请问for后面的变量(例如%%1)是什么意思
qwe274208829 发表于 2012-8-16 12:26


和示例的 %%i 一样, 没有差别, 都是自定义的变量
For详细的教程看这里 http://www.bathome.net/viewthread.php?tid=2189&from=favorites

TOP

借个地方
请问for后面的变量(例如%%1)是什么意思

TOP

返回列表