我想使用传递给批处理文件的前 2 个参数,然后将其他所有内容附加到批处理文件中执行的命令中。
有没有简单的方法来做到这一点?
// batch file
command -Duser=%1 -Dpwd=%2 {? how to pass all remaining arguments on the command line}
批处理将像这样执行
batch.bat USR PWD -Dargument1=1 -Dargument2=2
实际上,我希望执行以下操作
command -Duser=USR -Dpwd=PWD -Dargument1=1 -Dargument2=2
最佳答案
for
命令应该给你你想要的:
for /f "tokens=1,2*" %%a in ("%*") do echo command -Duser=%%a -Dpwd=%%b %%c
来自
for
的帮助( for /?
):FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
将解析 myfile.txt 中的每一行,忽略以一个分号,将每行的第二个和第三个标记传递给 for
正文,标记以逗号和/或空格分隔。 注意对于
正文语句引用 %i 以获取第二个标记,引用 %j 以获取
第三个 token ,%k 以获取第三个之后的所有剩余 token 。 为了
包含空格的文件名,您需要引用文件名
双引号。为了以这种方式使用双引号,您还
需要使用 usebackq 选项,否则双引号将是
解释为定义要解析的文字字符串。
所以在我的解决方案中,
%%a
具有传递给脚本的第一个参数的值,%%b
第二个参数的值,和 %%c
剩下的论点。当我跑
batch.bat USR PWD -Dargument1=1 -Dargument2=2
从命令提示符我得到:command -Duser=USR -Dpwd=PWD -Dargument1=1 -Dargument2=2
删除
echo
后 do
用参数调用你的命令。
关于batch-file - 如何将额外的额外参数传递给批处理文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12316840/