shell - 批处理文件 - 命令行参数的数量

标签 shell batch-file scripting

只是将一些 shell 脚本转换为批处理文件,但我似乎找不到一件事......那就是命令行参数数量的简单计数。

例如。如果你有:

myapp foo bar

在 shell 中:

  • $# -> 2
  • $* -> foo 酒吧
  • $0 -> myapp
  • $1 -> foo
  • $2 -> 酒吧

批量

  • <强>?? -> 2 <---- 什么命令?!
  • %* -> foo 栏
  • %0 -> myapp
  • %1 -> foo
  • %2 -> 栏

所以我环顾四周,要么是我看错了地方,要么是我盲目了,但我似乎找不到一种方法来计算传入的命令行参数的数量。

是否有类似于 shell 的“$#”的批处理文件命令?

ps。我发现的最接近的是迭代 %1 并使用“shift”,但我需要稍后在脚本中引用 %1、%2 等,所以这不好。

最佳答案

谷歌搜索一下,你会得到以下来自 wikibooks 的结果:

set argC=0
for %%x in (%*) do Set /A argC+=1

echo %argC%

看起来 cmd.exe 已经从旧的 DOS 时代进化了一些:)

关于shell - 批处理文件 - 命令行参数的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1291941/

相关文章:

shell - xargs' -x 选项的示例

Windows 批处理脚本 : compare two files' created dates

linux - 如何使用 shell 脚本在文件中追加多行文本

windows - 在 Windows 上为 GNU Make 定义和使用构建时间戳

linux - Shell one liner别名howto?

linux - 使用文件计数列出文件夹的 UNIX 命令

batch-file - 需要在批处理文件中模拟 Win 键

windows - 发出错误检查通过 VBScript 运行的批处理文件

Windows 批处理文件回显特定行号

bash - awk 正在插入空格