【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。