Windows cmd bat 调用带有 / 的命令

问题描述 投票:0回答:1

我明白了

=> 打电话/?

将显示呼叫命令的帮助消息。 但是

=> 调用 SubBatch 参数 /?

还可以在命令提示符下或在 bat 文件中显示帮助消息。

如果我有一个调用另一个bat文件的bat文件,但用户使用/调用第一个bat文件,这可能会很烦人?在亚麻布的某个地方 例如。如果我有一个名为 main.bat 的批处理文件,其中包含:

echo Starting my batch file
call SubBatch %*

如果我调用“main p1 p2 /?”或“main abc/?def” 我收到呼叫帮助文本。我可以通过放置包含 /? 的字符串来避免这种情况(即查看呼叫帮助)。用引号括起来:“/?”或“abc/?def”,但该字符串可以位于参数字符串 %*

中的任何位置

还有其他方法可以处理这个问题吗?

我想要

=> 调用子参数 /?参数

应该呼叫子系统并且不显示呼叫帮助消息。

windows batch-file cmd command call
1个回答
0
投票

由于您专门询问运行批处理文件,因此这里有一个简单的测试文件,名为“Run1.bat”,仅包含一行

type %1

创建另一个批处理文件,将其命名为“Run2.bat”,并包含以下几行

echo %* > Temp1.bat
echo Starting my batch file
call Temp1.bat

这将创建一个临时批处理文件

Temp1.bat
,其中仅包含参数,然后调用该批处理文件。接下来,使用
 运行 
Run2.bat

运行2.bat 运行1.bat /?

在我的 Windows 10 计算机上,给出以下结果

D:\Programs\Stack Overflow>echo Run1.bat /?  1>Temp1.bat

D:\Programs\Stack Overflow>echo Starting my batch file
Starting my batch file

D:\Programs\Stack Overflow>call Temp1.bat

D:\Programs\Stack Overflow>Run1.bat /?

D:\Programs\Stack Overflow>type /?
Displays the contents of a text file or files.

TYPE [drive:][path]filename

特别注意,上面输出的结尾部分显示的是

type
帮助说明,而不是呼叫帮助版本。

© www.soinside.com 2019 - 2024. All rights reserved.