batch-file - Windows Bat文件可选参数解析

标签 batch-file

我需要我的bat 文件接受多个可选的命名参数。

mycmd.bat man1 man2 -username alice -otheroption

例如,我的命令有 2 个强制参数和两个可选参数(-username),参数值为 alice,以及 -otheroption:

我希望能够将这些值提取到变量中。

只是给已经解决这个问题的人打电话。伙计,这些 bat 文件很痛苦。

最佳答案

虽然我倾向于同意@AlekDavis' comment ,尽管如此,在 NT shell 中还是有几种方法可以做到这一点。

我将利用 SHIFT 的方法命令和IF条件分支,像这样......

@ECHO OFF

SET man1=%1
SET man2=%2
SHIFT & SHIFT

:loop
IF NOT "%1"=="" (
    IF "%1"=="-username" (
        SET user=%2
        SHIFT
    )
    IF "%1"=="-otheroption" (
        SET other=%2
        SHIFT
    )
    SHIFT
    GOTO :loop
)

ECHO Man1 = %man1%
ECHO Man2 = %man2%
ECHO Username = %user%
ECHO Other option = %other%

REM ...do stuff here...

:theend

关于batch-file - Windows Bat文件可选参数解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3973824/

相关文章:

powershell - 从 powershell 运行 Octave 脚本并等待其完成

windows - 批量测试变量是否等于空格

如果任何列为空,Windows 批处理文件将删除 csv 文件中的那些行

windows - 批处理文件 - 如果输出 <=2 执行此操作,如果输出 >2 执行此操作(根据输出执行操作)

windows - 使用 "IF"命令创建批处理文件

windows - 如何使用批处理文件分割字符串?

javascript - 如何使用单个批处理文件或 javascript 导入或导出多个 mongo 集合

linux - 批处理文件不允许我登录

windows - 批处理脚本或 PowerShell 脚本从文本文件读取多个值并将其插入变量

file - 使用批处理文件递归查找和删除文件夹