如何在 Windows 中将命令开关(/x)与参数分开?

如何在 Windows 中将命令开关(/x)与参数分开?

我知道在 Linux 中,我只需写command -a -b - "arg1" "arg2"...,其中单个连字符是“选项/开关”分隔符。但我如何在 Windows cmd 中做类似的事情?

我只想从帮助中看到特定的选项/开关: c:\> setx /? | findstr /r '/m'/m我想在其中找到开关。但是findstr将它用作另一个开关:

FINDSTR: Bad command line

如何实现这一点?

答案1

我想找到/m开关

我在用着:

setx /? | findstr /r '/m'
  1. 您不需要/r开关(指定正则表达式'/m'不是正则表达式。

  2. 你使用了错误的引号(单引号'而不是"),应该是"/m"

  3. setx /?输出/M,因此您需要使用/I(忽略大小写)或"/M"

  4. /需要对 in进行"/m"转义(使用\),即"\/m",如果您没有使用/C:(使用字符串作为文字搜索字符串)选项

以下命令均可执行您想要的操作:

setx /? | findstr "\/M"
setx /? | findstr /c:"/M"
setx /? | findstr /i "\/m"
setx /? | findstr /i /c:"/m"

示例输出:

F:\test>setx /? | findstr "\/M"
    SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]
    SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]
         /F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]
    /M                     Specifies that the variable should be set in
    SETX MACHINE "COMPAQ COMPUTER" /M
         NT\CurrentVersion\CurrentBuildNumber" /M
         CurrentVersion\CurrentBuildNumber" /M

F:\test>setx /? | findstr /c:"/M"
    SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]
    SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]
         /F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]
    /M                     Specifies that the variable should be set in
    SETX MACHINE "COMPAQ COMPUTER" /M
         NT\CurrentVersion\CurrentBuildNumber" /M
         CurrentVersion\CurrentBuildNumber" /M

F:\test>setx /? | findstr /i "\/m"
    SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]
    SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]
         /F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]
    /M                     Specifies that the variable should be set in
    SETX MACHINE "COMPAQ COMPUTER" /M
         NT\CurrentVersion\CurrentBuildNumber" /M
         CurrentVersion\CurrentBuildNumber" /M

F:\test>setx /? | findstr /i /c:"/m"
    SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]
    SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]
         /F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]
    /M                     Specifies that the variable should be set in
    SETX MACHINE "COMPAQ COMPUTER" /M
         NT\CurrentVersion\CurrentBuildNumber" /M
         CurrentVersion\CurrentBuildNumber" /M

F:\test>

进一步阅读

相关内容