限制用户输入批次的长度

限制用户输入批次的长度

我需要一个本机命令或一个轻量级简单的第三方实用程序,我可以使用它在批处理文件中设置环境变量,但将其限制为一定数量的字符。

例如:

在此输入消息(最多 28 个字符):

那么用户当然只能输入28个字符。

有任何想法吗?

谢谢!

答案1

经过一番寻找,这xcopy似乎是最可靠的选择。

set "key="
for /f "delims=" %%A in ('xcopy /w "%comspec%" "%comspec%" 2^>nul') do if not defined key set "key=%%A"
set "key=!key:~-1!"

获取一个密钥,您可以使用它来构建输入。

if "!input:~-%length%!" == "!input!"

允许检查长度(在您的情况下为 28)。


您还可以input.bat我编写的脚本。通过使用宏,您可以获取脚本的输出。首先声明宏:

set input=^
for %%. in (1 2) do if %%.==2 (^
    for /F "delims=" %%I in ('input.bat !args!') do ^
        set "result=%%I"^
) else set args=

然后你可以像这样使用它:

setlocal EnableDelayedExpansion
%input% "prompt=Password: " "length=28"

然后您可以使用该result变量来获取您的输入。

重要的

为了定义宏延迟扩展需要已禁用。然而,在使用它时,需要延迟扩展已启用


资源

xcopy 输入- DosTips.com

批处理宏- DosTips.com

相关内容