【发布时间】:2010-11-20 11:41:47
【问题描述】:
只是将一些 shell 脚本转换为批处理文件,我似乎找不到一件事……那就是对命令行参数数量的简单计数。
例如。如果你有:
myapp foo bar
在外壳中:
- $# -> 2
- $* -> 富吧
- $0 -> 我的应用程序
- $1 -> 富
- $2 -> 条
批量
- ?? -> 2
- %* -> 富吧
- %0 -> 我的应用程序
- %1 -> 富翁
- %2 -> 条形
所以我环顾四周,要么我看错了地方,要么我失明了,但我似乎无法找到一种方法来计算传入的命令行参数的数量。
有没有类似shell的"$#"的批处理文件命令?
ps。我发现最接近的方法是遍历 %1s 并使用“shift”,但我需要稍后在脚本中引用 %1、%2 等,这样就不好了。
【问题讨论】:
-
你的字符串是
2 myapp foo bar? -
建议:不要将 sh 转换为 BAT。相反,下载 cygwin 并使用它。即您的 sh 脚本将在 Windows 机器上运行。而且您不必将每个 sh 都翻译成 BAT!
标签: shell batch-file scripting