[批处理]截取for命令里面的变量%%i

写了一个批处理,里面需要call几个其他的批处理。

其中主进程需要根据批处理文件运行时的输入参数,选择合适的url,而url的定义写到另外的批处理里面

URLProxyAA.cmd

URLProxyBB.cmd....

我想在主程序运行时搜索一下当前目录,有多少个URLProxy*.cmd,从而列举所有可用的参数,而*匹配的那个string即为主批处理程序的输入参数

Go.cmd的usage:

Go.cmd [environemnt]

[environemnt] value should be one of:

  AA

  BB

由于之前用过for命令(真是个强大的命令,但用法繁多,真不好记)。所以查看for /?后,觉得可以这么用(注意开启变量延迟):

@ECHO OFF && setlocal enableDelayedExpansion

:Usage

echo Example: GenerateSIPxocy.cmd [EnvironmentParameter]
echo Available [EnvironmentParameter] value:
for /F %%i in ('dir /b setproxyurl*.cmd') do (
set TMPSTR=%%i
ECHO !TMPSTR:~11,-5!)

 

%%i没法直接使用类似%var:~ xx,xx %来截取,所以只能先set,放到一个变量里面。然后通过这种方法截取变量里面的特定字符串,最终达到获取所有可用参数的目的。

 

 

posted on 2013-06-06 16:42  林南  阅读(1022)  评论(0编辑  收藏  举报

导航