无忧启动论坛

标题: 当for循环中的%%a为变量名时,如何获取其值? [打印本页]

作者: 0428_hai    时间: 2011-4-25 20:04
标题: 当for循环中的%%a为变量名时,如何获取其值?
for /f %%a in (a.txt) do (
  ::a.txt文本中的内容为变量名,想在这儿引用这个变量,如何写代码?
  ::echo %%%a%,这样写不对。
)


主题帖内容更新如下:
  1. @echo off
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. ::------------以下代码生成测试用的文本文件test.txt-------
  4. >test.txt echo my
  5. >>test.txt echo name
  6. >>test.txt echo is jack
  7. >>test.txt echo 批处理 论坛
  8. >>test.txt echo bbs.bathome.cn
  9. ::------------以上代码用于生成测试用的文本文件test.txt-------
  10. for /f "delims=" %%a in (test.txt) do (
  11.   set /a n+=1
  12.   set !n!=%%a
  13. )
  14. for /l %%a in (1,1,%n%) do (
  15.   echo !%%a!
  16. )
  17. pause>nul
复制代码
在以上代码中,我将test.txt文本中的每一行内容存入一系列变量中,这些变量名从1开始依次排列。
第二个for循环我使用了变量延迟来获取了这些变量名并读取了变量值。
我想,有没有办法不使用变量延迟来达到这个效果,不使用变量延迟如何在第二个for循环中读取test.txt中的内容呢?
使用 echo %%%a% 不可以达到效果,显示内容为一个%

[ 本帖最后由 0428_hai 于 2011-4-25 22:14 编辑 ]
作者: 超级坏蛋    时间: 2011-4-25 20:57
直接些:

echo %%a
作者: 0428_hai    时间: 2011-4-25 22:15
内容更新,不知有没有说明白
作者: chenall    时间: 2011-4-26 12:42
call echo %%%%a%%
作者: 0428_hai    时间: 2011-4-26 21:06
对,就是#4这个用法。




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3