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

[文本处理] 请问BAT如何正确输出含有变量的变量值?

各位高手,下面这段程序为何不能输出变量值,谢谢
  1. @echo off&setlocal enabledelayedexpansion
  2.      for /f "delims=" %%i in ( 5.txt ) do (            
  3.                         set n=0
  4.                    for  %%j in (%%i) do (
  5.                     
  6.                             set /a n+=1
  7.                           set  ar[!n!]=%%j
  8.                          echo !ar[%n%]!                           
  9.                  
  10.                        )                                                      
  11. )
  12. pause
复制代码

就是为什么echo !ar[%n%]! 出现错误,如何引用ar[n]的值

TOP

  1. call echo %%ar[!n!]%%
复制代码

TOP

请问FOXJL,为什么此处要用CALL ECHO 并用双%?

TOP

本帖最后由 batman 于 2013-10-19 10:05 编辑

建议用FOR来嵌套变量
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ( 5.txt ) do (            
  3.   set /a n=0
  4.   for %%j in (%%i) do (        
  5.     set /a n+=1
  6.     for %%k in (!n!) do (
  7.       set "ar[%%k]=%%j"
  8.       echo,!ar[%%k]!                 
  9.     )
  10.   )                                                      
  11. )
  12. pause
复制代码
***共同提高***

TOP

回复 4# suseek


延伸阅读<批处理中的变量嵌套变量用法>
http://bbs.bathome.net/thread-2900-1-1.html

使用call会影响批处理的工作效率,也就是会变慢一点.但我个人觉得效率都是相对的,对比人手动去完成工作来说用批处理会快得太多了.从实用的角度我都是怎么简单怎么来,又不是大型项目没必要太在意那么一点点效率.

TOP

5634534尔特突然

TOP

返回列表