[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[已解决] 批处理输入变量的内容包含特殊字符时, 如何处理?

本帖最后由 极品小猫 于 2012-6-18 07:57 编辑

代码如下, 例如输入的内容为 | * 等特殊字符时, 会直接出错, 有什么办法可以在不需要输入预处理符号的情况下, 对输入包含特殊字符的内容进行处理

要求: 在输入非0-9的字符时, 进行提示. 另外, 变量为空值时不会退出批处理
  1. @echo off
  2. :if
  3. set num=
  4. set /p "num=请输入: "
  5. ::遍历 num 寻找非 0-9 的字符, 并提示
  6. for /f "delims=" %%i in ('echo %num%^|findstr "[^0-9]"') do (
  7. cls
  8. if not "%%i"=="" echo 请输入纯数字!
  9. goto :if
  10. )
  11. if /i %num% lss 10 (set num=0%num%) else (echo %num%)
  12. echo %num%
复制代码
1

评分人数

    • zqz0012005: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 极品小猫 于 2012-6-14 19:20 编辑
可在 for /f 内部使用变量延迟:可以用逻辑连接符简化成:不过更好的办法是改进思路:
CrLf 发表于 2012-6-14 13:21


回复powerbat: 发帖的时候也感觉标题有点问题

Ctrlv5, 感谢Ctrl版大的指导, 很详细的解释, 发帖的时候忘记说了一个问题.

希望在变量的值为空的时候也不会退出批处理.

TOP

返回列表