批量

2015-08-15 58 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 off 
set cash=500 
:a 
set name= 
set /p name=Enter your name: 
echo "%name%" 
goto :a 
+0

不錯。但是這並不能阻止「|」問題現在可以做到這一點嗎?也許我應該管一個C++ exe文件來做我想做的事情 – Jahwi

+1

是的,它會阻止你問到的問題。絆倒了。 – foxidrive