因工作需要需要生成大量的配置文件,为了不机械的手工输入最近参考了一些批处理命令资料,为了以后不遗忘整理成章。
现在要生成像下面这种格式的文件,从209到250
Java代码 复制代码
  1. exten =>209,1,ExecIf($["${BLKVM_OVERRIDE}" != ""],dbDel,${BLKVM_OVERRIDE})    
  2. exten =>209,n,Set(__NODEST=)    
  3. exten =>209,n,Goto(from-did-direct,209,1)    
  4. ...    
  5. exten =>250,1,ExecIf($["${BLKVM_OVERRIDE}" != ""],dbDel,${BLKVM_OVERRIDE})    
  6. exten =>250,n,Set(__NODEST=)    
  7. exten =>250,n,Goto(from-did-direct,250,1)   
exten =>209,1,ExecIf($["${BLKVM_OVERRIDE}" != ""],dbDel,${BLKVM_OVERRIDE}) 
exten =>209,n,Set(__NODEST=) 
exten =>209,n,Goto(from-did-direct,209,1) 
... 
exten =>250,1,ExecIf($["${BLKVM_OVERRIDE}" != ""],dbDel,${BLKVM_OVERRIDE}) 
exten =>250,n,Set(__NODEST=) 
exten =>250,n,Goto(from-did-direct,250,1) 

生成的脚本如下:
Java代码 复制代码
  1. for /l %%i in (209,1,250do (    
  2. echo exten =^>%%i,1,ExecIf^($["${BLKVM_OVERRIDE}" != ""],dbDel,${BLKVM_OVERRIDE}^)    
  3. echo exten =^>%%i,n,Set^(__NODEST=^)    
  4. echo exten =^>%%i,n,Goto^(from-did-direct,%%i,1^)    
  5. )>>from-did-direct-ivr.txt   
for /l %%i in (209,1,250) do ( 
echo exten =^>%%i,1,ExecIf^($["${BLKVM_OVERRIDE}" != ""],dbDel,${BLKVM_OVERRIDE}^) 
echo exten =^>%%i,n,Set^(__NODEST=^) 
echo exten =^>%%i,n,Goto^(from-did-direct,%%i,1^) 
)>>from-did-direct-ivr.txt 

生成的文件输出到from-did-direct-ivr.txt
难点解释:
1,在批处理命令中^是特殊符号,它是用来标注特殊符号的,使特殊符号变为字符使用,例如>,(符号是特殊符号。但是对于%号无效,要表示是%号当作字符输出必须以%%来表示。
2,for循环加()相当于c中的{}。
echo.相当于输出回车,注意“.”不能少。
:为注释一行
另类注释
goto start
= 可以是多行文本,
= 可以包含重定向符号和其他特殊字符
= 只要不包含 :start 这一行
:start