【发布时间】:2013-12-19 00:38:29
【问题描述】:
我在 stackoverflow 的其他地方得到了以下代码:
@echo off
rem throw the first parameter away
shift
set params=%1
:loop
shift
if [%1]==[] goto afterloop
set params=%params% %1
goto loop
:afterloop
@echo %params%
@echo on
结果:运行 shifttest 1 2 3 4 5 6 7 8 产生 2 3 4 5 6 7 8
经过进一步测试,我发现我可以通过执行以下操作来丢弃前两个参数:
@echo off
rem throw the first two parameters away
shift
set params=%2
:loop
shift
if [%2]==[] goto afterloop
set params=%params% %2
goto loop
:afterloop
@echo %params%
@echo on
结果:运行 shifttest 1 2 3 4 5 6 7 8 产生 2 3 4 5 6 7 8
我还发现我可以将%2 替换为%3 以丢弃前三个,依此类推...
我的问题: 有没有办法指定要丢弃多少参数?
示例:运行shifttest 5 2 3 4 5 6 7 8 产生6 7 8,即第一个参数指定要丢弃多少个参数,包括第一个。
我在想一些类似于%(%1) 的东西,但这显然行不通。
【问题讨论】:
标签: batch-file command-line cmd command-line-arguments