写了一个批处理,里面需要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,放到一个变量里面。然后通过这种方法截取变量里面的特定字符串,最终达到获取所有可用参数的目的。