2013-04-25 3 views
2

Я делаю быструю программу только для удовольствия в пакетном кодировании.Переменная от пользовательского ввода BATCH

Мне нужно установить переменную из ввода пользователя, но я не знаю, как это сделать.
До сих пор я сделал «команду», которую вы используете, чтобы указать свое имя.

@echo OFF 
title Name pl0x 
color 0a 
:start 
set INPUT= 
set /P INPUT= %=% 
IF "%INPUT%"=="/mynameis name" (
goto :init 
) ELSE (
goto :start 
) 
:init 
REM I would echo the name like "hello, %NAME%!" 

Заранее спасибо.

EDIT:
мне это нужно в формате команды, как пользователь хотел бы написать: /mynameis Door Knob
и не
Enter your name:

ответ

6

При использовании Set/P вы присваиваете переменной имя в полученное приглашение пользователя, имя переменной, которое вы используете в этом случае, - «INPUT».

Просто используйте тот же VarName ("INPUT"), чтобы напечатать переменную здесь:

:init 
REM I would echo the name like "hello, %NAME%!" 
Echo Name: %INPUT% 
Pause 

Пример:

@echo OFF 
title Name pl0x 
color 0a 

:start 
set /P "Name=" 
REM IF /I "%Name%" EQU "/mynameis name" (goto :init) ELSE (goto :start) 


:init 
Echo Hello, %Name% ! 
Pause&Exit 

Выход:

Write your name >> Elektro 
Hello, Elektro ! 

UPDATE:

@echo OFF 

If /I %~1 EQU "/mynameis" (Set "Name=%~2") ELSE (Exit /B 1) 

Echo Hello, %~2 
Pause&Exit 

Синтаксис:

Script.bat /mynameis {name} 
+0

I рода нужно быть в формате команды, хотя. – hexagonest

+0

Я не могу понять, что вам нужно, пожалуйста, укажите его. – ElektroStudios

+0

Как будто я должен был сделать/mynameis Door Knob. Я говорю программе свое имя с помощью команды. – hexagonest