Я хочу запросить у пользователя некоторые данные ввода, а затем использовать его позже как аргумент командной строки.
Как ввести строку из пользователя в переменную среды из командного файла
Ответ 1
Вы можете использовать set
с аргументом /p
:
SET /P variable=[promptString]
Переключатель/P позволяет вам установить значение переменной в строку ввода введенный пользователем. Показывает указанную строку promptString перед чтением строка ввода. Команда promptString может быть пуста.
Итак, просто используйте что-то вроде
set /p Input=Enter some text:
Позже вы можете использовать эту переменную в качестве аргумента для команды:
myCommand %Input%
Будьте осторожны, но если ваш ввод может содержать пробелы, вероятно, это хорошая идея, чтобы процитировать его:
myCommand "%Input%"
Ответ 2
Скорее обходной путь, просто для полноты:
for /f "delims=" %i in ('type CON') do set inp=%i
Конечно, это требует ^ Z как терминатора, и поэтому ответ Йоханнеса лучше всего на практике.
Ответ 3
Предложение Joey было лучшим ответом №1 в Интернете для решения этой проблемы, и я бы хотел, чтобы я нашел это быстрее.
Вы можете использовать set с аргументом /p:
SET/P input = [promptString]
При запуске вам будет предложено установить значение для [promptString].
Позже вы можете использовать эту переменную в качестве аргумента для команды, помещая в нее %%:
myCommand% Вход% Будьте осторожны, однако, если ваш ввод может содержать пробелы, вероятно, это хорошая идея, чтобы процитировать его:
myCommand "% Input%"