batch-file - 如何将额外的额外参数传递给批处理文件?

标签 batch-file command-line-arguments

我想使用传递给批处理文件的前 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

删除 echodo用参数调用你的命令。

关于batch-file - 如何将额外的额外参数传递给批处理文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12316840/

相关文章:

Windows7批处理,如何在第一个For循环后中断

string - 在批处理文件中,如何查找文本文件中出现的字符串?

android - 是否可以在 Android 中运行批处理文件?

python - 如何从命令行将十六进制值传递给 python 脚本

batch-file - 批处理文件 If 语句 - 语法错误?

windows - 如何从 `for` 处理的项目(在 `in` 之后)调用子程序?

python - 模仿 AWS CLI/gcloud 命令行参数

c - 命令行选项的 "sense"是什么?

python - 带有命令行参数的 Nose 测试脚本

c - C 链表或二叉树中的 argc/argv