如何在cmd中将命令添加到命令

时间:2013-08-04 17:50:58

标签: batch-file

嘿,伙计们非常简单的问题,我需要知道如何在cmd中的命令中添加扩展/开关。 另外,我如何对我所做的命令执行此操作? (键入名称时调用的批处理文件)

实施例

传统

ipconfig /all

修饰的

ipconfig -a

ipconfig /a

2 个答案:

答案 0 :(得分:3)

这是一个简单的例子,可以用上面的答案。

@echo off
if /i "%~1"=="-a" ipconfig /all
if /i "%~1"=="/a" ipconfig /all

(不要调用批处理文件ipconfig.bat - 永远不要使用批处理文件的系统命令名称):

答案 1 :(得分:2)

  

Cmd.exe提供批处理参数扩展变量%0到   %9。在批处理文件中使用批处理参数时,%0将替换为   批处理文件名,%1到%9替换为   您在命令行键入的相应参数。访问   超出%9的参数,您需要使用shift命令。更多   有关shift命令的信息,请参阅Shift%* batch参数   是对所有参数的通配符引用,不包括%0   传递给批处理文件。

例如,要将内容从Folder1复制到Folder2,其中%1是 替换为值Folder1,%2由值Folder2替换, 在名为Mybatch.bat的批处理文件中键入以下内容:

xcopy %1\*.* %2

要运行该文件,请键入:

mybatch.bat C:\ folder1 D:\ folder2

Copied from MSDN

使用记事本创建批处理文件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

现在,arg1将从您的示例中保留a而不使用 - 或/

如果你运行mytest -a,你会看到A was the parameter 如果你运行mytest -b你将看不到任何东西......

(事实上你看到cmd文件中的每一个命令都很方便调试,尝试在mytest.cmd的第一行添加@echo以消除噪音)

尝试使用cmd提示set /?if /?for /?call /?了解有关可用命令的详情。