2015-08-15 3 views
0

У меня есть простой скрипт:Проверка пользовательского ввода в партии

@echo off 
set cash=500 
:a 
set name= 
set /p input=Enter your name: 
echo %name% 
goto :a 

Я знаю, что пакетный ввод склонен к эксплуатации, и я читал много статей о том, что. Я могу остановить пользователя от ввода только input&&set cash=100000, но как прекратить выпуск командного файла, если пользователь вводит символ |?

+0

Я добавил много кода валидации, (даже останавливая пользователю вводить «установить переменную =» среди других вещей, но это, что штопать. «|».. Это проблема – Jahwi

+0

Использование задерживается расширение – rojo

ответ

2

Проблема заключается в команде echo, а не в процедуре ввода.
Двойные кавычки фиксируют это - есть другие способы.

@echo off 
set cash=500 
:a 
set name= 
set /p name=Enter your name: 
echo "%name%" 
goto :a 
+0

приятно но это не останавливает проблему «|» теперь делает это? Может быть, я должен направить C++ exe, который делает то, что я хочу. – Jahwi

+1

Да, это останавливает проблему, о которой вы просили. Не зная о том, что эхо ядовитых персонажей находится там, где вы были сработал. – foxidrive

Смежные вопросы