2016-12-11 5 views
0

Изучение пакетных файлов и написал эту простую программупараметров пакетного файла не принимает аргументы во время выполнения

@echo off 
Rem why doesn't this work? 
echo Welcome %1 
pause 

Когда он работает, вывод: Добро пожаловать Нажмите любую клавишу для продолжения. , ,

Почему он не позволяет мне вводить что-либо для значения параметра? Благодарю. Это на окнах 10 кстати.

+1

Потому что он ожидает его в командной строке, например 'C: \> mybatch.bat grant2088'. Вот откуда исходит% 1. Вы не говорите, чтобы он предлагал вам ввести данные. –

+0

отличное спасибо за помощь – grant2088

ответ

1

%1%2, %3 и т. Д.) Представляют параметры, переданные в командный файл при запуске, как упоминал Кэн Уайт. Итак, если вы сохранили этот файл как go.cmd ...

@echo off 
echo hello %1 
echo hello %2 
echo hello %3 

... а затем побежал в командной строке: go paula agnus denise, вы получите это:

> go paula agnus denise 
hello paula 
hello agnus 
hello denise 

Если вы хотите уметь попросить пользователя ввести текст во время выполнения, вместо того, чтобы вводить его в командной строке, тогда вам нужно использовать SET /p. Пример:

@echo off 
set /p name=What is your name? 
echo Welcome, %name%. 

Run, который, введите Гэри, и вы получите что-то вроде этого:

What is your name? Gary 
Welcome, Gary.