【batch】批处理文件多参数处理和for循环字符串连接

batch文件写起来,酸爽不谈了。[1]今天在github上发现个好东西batsh,运行地址:https://batsh.org/[1]

这里需求的场景是:调用run.bat脚本并传入多个参数(相对路径),脚本中对相对路径进行加前缀D:然后拼接起来形成绝对路径,并且每个路径之间会以空格隔开。

例如执行 run.bat dir1 dir2 dir3,则脚本中拼接后的结果为 D:dir1 D:dir2 D:dir3

run.bat脚本内容:

 1 @echo off
 2 set pathPrefix=D:
 3 set varStr=
 4 ::检测是否传入参数
 5 if "%1"=="" ( 
 6     echo No variable received, please call the bat with variables!
 7     exit 0
 8 )
 9 
10 ::遍历参数,并将这些参数拼接起来
11 for %%i in (%*) do call :concat %%i  
12 ::将字符串最前面的空格去掉  
13 set "varStr=%varStr:~1%"
14 echo %varStr%
15 pause 
16 goto :eof
17 
18 ::对参数进行加前缀、拼接
19 :concat
20 set varStr=%varStr% %pathPrefix%%1
21 goto :eof

 [1] added on 2019-01-08。

原文地址:https://www.cnblogs.com/tigerhsu/p/10007267.html