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

原文地址:https://www.cnblogs.com/lin2yatou/p/3121512.html