加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

是否有一种方法来指示批处理文件中的最后n个参数?

发布时间:2020-12-15 09:23:27 所属栏目:安全 来源:网络整理
导读:在以下示例中,我想从父批处理文件调用子批处理文件,并将所有剩余的参数传递给子进程。 C: parent.cmd child1 foo barC: parent.cmd child2 baz zoopC: parent.cmd child3 a b c d e f g h i j k l m n o p q r s t u v w x y z 在parent.cmd内,我需要
在以下示例中,我想从父批处理文件调用子批处理文件,并将所有剩余的参数传递给子进程。
C:&; parent.cmd child1 foo bar
C:&; parent.cmd child2 baz zoop
C:&; parent.cmd child3 a b c d e f g h i j k l m n o p q r s t u v w x y z

在parent.cmd内,我需要删除参数列表中的%1,并且只将剩余的参数传递给子脚本。

set CMD=%1
%CMD% <WHAT DO I PUT HERE>

我已经研究使用SHIFT与%*,但这不工作。虽然SHIFT会将位置参数向下移动1,但%*仍指原始参数。

任何人都有什么想法?我应该放弃和安装Linux吗?

可悲的是,%*将总是扩展到所有原始参数。但是,您可以使用以下代码段来构建一个包含除第一个参数之外的所有变量的变量:
rem throw the first parameter away
shift
set params=%1
:loop
shift
if [%1]==[] goto afterloop
set params=%params% %1
goto loop
:afterloop

我认为它可以做得更短,虽然…我不经常写这样的事情:)

应该工作,但。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读