我使用批处理文件来为一些需要额外参数才能工作的命令创建包装器。例如,我有一个文件pip.cmd
,它为所有调用添加了一个自定义代理参数pip
:
pip.exe --proxy="myproxy" %1 %2 %3 %4 %5
如您所见,我使用%1
符号将参数转换为pip.cmd
,pip.exe
但是,如果有超过 5 个参数,我的方法就会中断。在 Linux 中,我只需使用"$@"
,它可以一次处理所有参数。对于 Windows shell,是否有类似的符号或合理的解决方法?
答案1
对于 Windows shell 是否有类似的符号或合理的解决方法?
%*
相当于Unix中cmd
的$@
。
笔记:
- 最多允许 255 个参数。
示例(pip.cmd):
pip.exe --proxy="myproxy" %*
命令行参数(参数)
%*
批处理脚本中引用所有参数(例如%1 %2 %3 %4 %5 ...%255
)
来源 -参数
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 参数- 命令行参数(或参数)是传递到批处理脚本的任何值。
答案2
您可以使用%*
:
@echo off
echo %0
echo %*
运行该命令将得到:
C:\>test.cmd this is a test 1 2 3 4 5 6 7 8
test.cmd
this is a test 1 2 3 4 5 6 7 8
%0
命令/程序名称以及%*
所有参数在哪里。
看本文。