首页 > 解决方案 > 解析参数是逗号分隔的字符串,传递给批处理文件

问题描述

我有一个批处理文件,它接受一个参数,它是一个逗号分隔的字符串,我这样称呼它:

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"
)

所以最后,当我 pring 'excludes_cmd' 变量时,我会得到这个:

--exclude .git --exclude *.tmp --exclude file.c

标签: batch-filecmd

解决方案


想出了与 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

推荐阅读