1

我需要使用批处理文件传递命令参数。我该怎么做?我设置了一个小程序,但我不知道如何获取命令参数..或者真的如何制作命令。

@echo OFF
title Name pl0x
color 0a
:start
set INPUT=
set /P INPUT= %=%
IF "%INPUT%"=="/mynameis" (
goto :init
) ELSE (
goto :start
)
:init
Pause&Exit
REM Here, I'd print the name, like this: echo.Hello, %name%
REM I just don't have the variable. And I don't know how to set it.
4

2 回答 2

2

参数由 %1 %2 等完成

所以如果你有 mynameis.bat %1 将包含 test

于 2013-04-25T21:52:02.680 回答
1

参数是一个由空格分隔的单词,您可以像应用程序中的参数一样使用它。

然后如果调用这样的脚本:

Script.Bat word1 word2 word3_word4-word5

论据是:

Argument 1 = "word1"
Argument 2 = "word2"
Argument 3 = "word3_word4-word5" (Because any space).

在批处理中,参数存储在从%1%255的特殊变量中,其中%1等于“参数 1”。

%0 等于当前脚本名称或过程名称。

%* 加入所有参数

..还有特殊的修饰符~展开不带双引号的参数。

那么如果我们有这个代码:

@Echo OFF
If /I "%~1" EQU "/Print" (Echo: You called the function "%~1" with the value: "%~2"))

我们正在检查参数 1 是否等于“/Print”,然后如果等于则打印开关的值,即第二个参数。

然后你可以这样称呼你的蝙蝠:

Script.bat /Print Hello!

在此处了解有关批处理参数的更多信息:http: //ss64.com/nt/syntax-args.html

于 2013-04-25T21:57:01.807 回答