我有一个脚本文件,可以通过这种方式接收一些参数:
echo --debug will run the tests but not run the installer. This need to be the first parameter.
echo --testcases=TESTCASES Provide a list of testcases to execute instead of those in App.config. The TESTCASES list commma-separated.
echo --dbkeys=DATABASEKEYS Provide a list of UTDB keys to prepare instead of those in App.config. The DB keys in question must be a subset of those mentioned in App.config. The DATABASEKEYS list should be commma-separated.
例如,您可以调用此文件
./file.bat --testcases="test1, test2" --dbkeys="db1"
这部分工作正常,因为在脚本中我有这个调用:
call Test\MidTierLibUT\bin\Release\FleetManagerAPI.MidTierLibUT.exe %* || exit /b -2
但是如果我将第一个参数--debug
放进去,我想在调用之前做其他事情
call Test\MidTierLibUT\bin\Release\FleetManagerAPI.MidTierLibUT.exe %* || exit /b -5
,在%*
中,我不希望--debug传递。
所以我尝试了:
shift
:start
if [%1] == [] goto done
set args=%args% %~1
shift
goto start
:done
call Test\MidTierLibUT\bin\Debug\FleetManagerAPI.MidTierLibUT.exe %args% || exit /b -5
但是%args%
看起来像:--testcases test1 test2
(不带“或=)
有人可以帮我吗?
答案 0 :(得分:1)
我想开箱即用,试图找到解决方案,并结合@aschipfl和@SomethingDark的想法,我认为将字符串的那部分全部删除并发送其余部分比较容易:) 所以解决方案是这样的:
set args=%*
set args= %args:--debug=%
Test\MidTierLibUT\bin\Debug\FleetManagerAPI.MidTierLibUT.exe %args% || exit /b -5
感谢您的帮助!