标题: [已解决]批处理命令for如何获取目录后设置为独立变量(将变量值作为变量名)? [打印本页]
作者: 极品小猫 时间: 2012-8-15 20:55 标题: [已解决]批处理命令for如何获取目录后设置为独立变量(将变量值作为变量名)?
测试环境: R盘下有 a b c d 四个文件夹(文件夹数量不固定, 此处仅为例子)
目的: 通过 for 获取这些文件夹并对每个文件夹设置一个变量(对应为1 2 3 4), 以便批处理后面通过这些变量来输出显示.
其实就是想使用变量的值来作为下一个变量名, 同时这一个变量存入获取到的文件夹名.
PS: 目的需要不产生临时文件
解决方法- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- for /f %%i in ('dir /b /ad') do (
- set /a num+=1
- set !num!=%%i
- echo !num!. %%i
- )
- echo,
- set /p i=请输入要操作的用户目录编号:
- echo !%i%!
-
- ENDLOCAL
- pause
复制代码
作者: qwe274208829 时间: 2012-8-16 12:26
借个地方
请问for后面的变量(例如%%1)是什么意思
作者: 极品小猫 时间: 2012-8-16 13:07
借个地方
请问for后面的变量(例如%%1)是什么意思
qwe274208829 发表于 2012-8-16 12:26
和示例的 %%i 一样, 没有差别, 都是自定义的变量
For详细的教程看这里 http://www.bathome.net/viewthread.php?tid=2189&from=favorites
作者: qwe274208829 时间: 2012-8-16 22:37
回复 3# 极品小猫
哦
think
作者: 悬崖之树 时间: 2012-8-18 17:26
下面的代码可以实现把变量值作为变量名- @echo off
- set a=abc
- set %a%=520
- echo %abc%
- pause
复制代码
作者: 悬崖之树 时间: 2012-8-18 17:32
还有更高级的:- @echo off & setlocal ENABLEDELAYEDEXPANSION
- set a=abc
- set %a%=520
- echo !%a%!
- pause
复制代码
作者: 极品小猫 时间: 2012-8-18 19:16
本帖最后由 极品小猫 于 2012-8-18 19:39 编辑
还有更高级的:
悬崖之树 发表于 2012-8-18 17:32
感谢你的回复, 其实你这两段代码我都明白. 看到 echo !%a%! 我才想起原来是我后面的代码存在引用问题.
哈 ~ 脑子卡壳在 for 那里了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |