@echo off&SETLOCAL ENABLEDELAYEDEXPANSION
title 批处理中判断用户的输入是否是一指定数值的方法,支持任何特殊字符的方法 by:vkill
findstr "^::要求输入为" "%~nx0" >"%temp%\b.txt" 2>nul ||(echo 你没有定义要求输入的数值&pause&exit/b)
:loop
cls
set v=&set/p=输入:<nul&set/p "v= "
echo.
if not defined v (echo 输入为空,不符合你的要求&goto end)
set v|findstr "^v=" >"%temp%\a.txt"
set/p lv=<"%temp%\a.txt"
set/p=输入为 [ !lv:~2! ] <nul
>"%temp%\a.txt" set/p=::要求输入为!lv:~2!<nul
fc "%temp%\a.txt" "%temp%\b.txt" >nul 2>nul||(set/p=不<nul)
set/p=符合你的要求<nul
:end
echo.
echo.
pause
goto loop
::这里自己定义
::要求输入为~!@!~#@!$#!$!@$#@!%"
提示:
用set/p 和 fc 来解决特殊字符
要求输入为 这个变量直接set 和 set/p=