嘿伙计们非常简单的问题,我需要知道如何在 cmd 中将扩展/开关添加到命令中。另外,我将如何对我发出的命令执行此操作?(输入名称时调用的批处理文件)
前任。
传统的
ipconfig /all
修改
ipconfig -a
或者
ipconfig /a
嘿伙计们非常简单的问题,我需要知道如何在 cmd 中将扩展/开关添加到命令中。另外,我将如何对我发出的命令执行此操作?(输入名称时调用的批处理文件)
前任。
ipconfig /all
ipconfig -a
或者
ipconfig /a
这是一个与上述答案相匹配的简单示例。
@echo off
if /i "%~1"=="-a" ipconfig /all
if /i "%~1"=="/a" ipconfig /all
(不要调用你的批处理文件 ipconfig.bat - 永远不要对批处理文件使用系统命令名称):
Cmd.exe 提供批处理参数扩展变量 %0 到 %9。在批处理文件中使用批处理参数时,%0 将替换为批处理文件名,%1 到 %9 将替换为您在命令行中键入的相应参数。要访问 %9 以外的参数,您需要使用 shift 命令。有关 shift 命令的详细信息,请参阅 Shift %* 批处理参数是对传递给批处理文件的所有参数(不包括 %0)的通配符引用。
例如,要将内容从 Folder1 复制到 Folder2,其中 %1 被值 Folder1 替换,%2 被值 Folder2 替换,请在名为 Mybatch.bat 的批处理文件中键入以下内容:
xcopy %1\*.* %2
要运行该文件,请键入:
mybatch.bat C:\folder1 D:\folder2
用记事本创建一个批处理文件mytest.cmd
并添加以下内容
rem start parsing out first parameter indicated with %1
set parm1=%1
set arg1=%parm1:~2%
if "%arg1%"=="a" echo A was the parameter
现在 arg1a
将从您的示例中保留而没有 - 或 /
如果你运行 mytest -a 你会看到A was the parameter
如果你运行 mytest -b 你什么也看不到...
(事实上,您会看到 cmd 文件中的每一个命令都便于调试,请尝试在 mytest.cmd 的第一行添加 @echo off 以消除噪音)
在 cmd 提示符下尝试set /?
,if /?
或for /?
以call /?
了解有关可用命令的更多信息。