我有一个批处理文件,它带有一个参数,该参数是一个逗号分隔的字符串,我这样称呼它:
myBatch.bat ".git,*.tmp,file.c"
在批处理文件中,我需要编写一个代码来解析在命令行中传递的参数,并像这样将其中断:
@echo off
set excludes=%~1
set excludes_cmd=""
FOR /f "tokens=1* delims=," %%a IN ("%excludes%") DO (
set "excludes_cmd=%%excludes_cmd%% --exclude %%~a"
)
所以最后,当我推入'excludes_cmd'变量时,我会得到这个:
--exclude .git --exclude *.tmp --exclude file.c
答案 0 :(得分:2)
您应该能够通过基本的变量扩展和替换来做到这一点:
@Echo Off
Set "excludes=%~1"
If Not Defined excludes GoTo :EOF
Set "excludes_cmd=--exclude %excludes:,= --exclude %"
变量%excludes_cmd%
应该包含您所需的内容。
答案 1 :(得分:2)
采用与Compo类似的方法,只是将示例作为默认值插入。
@echo off
if "%~1"=="" "%~f0" ".git,*.tmp,file.c"
set "excludes=,%~1"
set "excludes_cmd=%excludes:,= --exclude %"
set excludes
excludes=,.git,*.tmp,file.c
excludes_cmd= --exclude .git --exclude *.tmp --exclude file.c