0

我想编写一个简单的批处理脚本来检查输入字符串是否超过 5 个字符。

就像是:

SET /P INPUT=Enter your string:
IF %INPUT% > 5 (
          ECHO %INPUT% has more than 5 chars
) ELSE (
          ECHO %INPUT% has less than 5 chars
)

如何在 .bat 中执行此类检查?

4

3 回答 3

3

您可以通过简单的子字符串操作查看第五个字符之后是否有字符:

if defined INPUT if "%INPUT:~5,1%"=="" (
    echo five or less characters
) else (
    echo more than five characters
)

如果您在某处不需要实际数字,则无需计算字符串的长度。尽管 jeb 获取长度的方法相当聪明(与此处使用的想法完全相同)。

于 2012-10-04T16:36:44.913 回答
1

我确定您已经在批处理文件脚本中从输入中获取字符串长度并不是很直接。一个简单的方法是测试输入字符串的前 5 个字符(或任意 x 个字符)是否与输入字符串相同。例如:

SET /P INPUT=Enter your string:
IF [%INPUT%]==[%INPUT:~0,5%] (
      ECHO %INPUT% has more than 5 chars
) ELSE (
      ECHO %INPUT% has less than 5 chars
)

诚然,这不适用于您可能需要的每个逻辑场景,但对于许多场景来说它相当简单。仅供参考,我添加了[]字符以防止空字符串比较。

希望有帮助...

于 2012-10-04T16:42:20.400 回答
0

这与这个问题非常相似。听起来您必须为此编写自己的函数,然后将结果与 5 进行比较。幸运的是,该问题的回答者为您提供了一个函数。

此外,谷歌是你的朋友。

于 2012-10-04T16:35:19.860 回答