【问题标题】:How to shift arguments in batch files when there are more than 10 arguments当有超过 10 个参数时如何在批处理文件中移动参数
【发布时间】:2014-02-28 01:48:18
【问题描述】:

我正在学习如何使用类似于原生脚本语言的 VBScript 为 Windows 7 编写批处理文件。

我想我没有使用 Windows Scripting Host 或 Power Shell。我使用的是简单的老式 VBScript 语法。

当传递给批处理文件的参数超过 9 个(或 10 个,包括批处理文件的名称)时,我不明白如何转换参数。

你能教我吗?

假设您使用以下参数调用了我的批处理文件:

C:\>call my.bat "one" "two" "three" "four" 
    "five" "six" "seven" "eight" "nine" "ten" "eleven"

您将如何从my.bat 中访问参数teneleven

【问题讨论】:

  • @Kayasax 谢谢。您能否指出一个示例,其中向批处理文件提供了 10 多个参数并且它会读取所有参数?

标签: batch-file windows-scripting


【解决方案1】:

这是从 ss64.com 获取的批次

@echo off
:start
if "%1"=="" (goto :exit)
:: Do whatever with token %1
Echo [%1] 
:: Shift %2 into %1 
SHIFT
goto :start

:exit
::pause

使用超过 10 个参数调用该批处理,它将显示所有参数

    shift.bat 1 2 3 4 5 6 7 8 9 10 11
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]

【讨论】:

  • 谢谢你,@Kayasax。 (1) 是以:: cmets 开头的行吗?到目前为止,我只看到 cmets 以REM 开头,所以我问。 (2) 我知道您一次只做 1 个,并且只阅读第一个,直到阅读完所有论点。如果我必须使用 for 循环来执行此操作,我必须知道传递给批处理文件的参数的确切总数。有没有一种方法可以提前知道传递给批处理文件的参数总数?
  • 1- 是的,这些是 cmets。 2- 看到那个帖子:stackoverflow.com/questions/1291941/…
  • 非常感谢。 :-)
猜你喜欢
  • 2015-05-15
  • 2014-03-08
  • 2017-09-16
  • 1970-01-01
  • 2021-06-04
  • 2011-05-15
  • 2014-10-15
  • 2015-02-26
  • 2011-06-22
相关资源
最近更新 更多