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

[文件操作] [已解决]批处理判断文件名符合特定条件时进行相关操作

假设有个文件名,由四个字符组成,自动生成的

要求:

1:当四个字符由数字组成时,OK

2:当四个字符由字母组成并小于F时,OK (包括F)

3:当四个字符由数字与字母组成并小于F时,OK (包括F)

4:当四个字符不符合以上三种情况时,NO

希望可能给个思路,或是例子,谢谢。

[ 本帖最后由 pine 于 2009-11-7 10:34 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

回复 1楼 的帖子

小于F是什么意思??

TOP

这样代码 有用不?
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p str=请输入字符:
  3. set "var=%str%"
  4. for /l %%i in (0 1 9) do if defined str set "str=!str:%%i=!"
  5.     if not defined str (echo %var% 由数字组成) else (
  6.        if "!str!" neq "!var!" set F=0
  7.            for %%i in (a b c d e f) do if defined str set "str=!str:%%i=!"
  8.                if not defined str (
  9.            if defined F (echo %var% 由数字与字母组成ok)else echo %var% 由小于F字母组成
  10.         )
  11.      )
  12. pause
复制代码

TOP

根据楼主的意思推论就是怎样判断一个四位数的字符是不是由0-9和a-f的字符组成的,也就是判断这个四位数的字符是不是合理的10进制或16进制数值,演示代码如下:
  1. @echo off
  2. set /p str=请输入四位字符:
  3. set /a a=0x%str% >nul 2>nul&&echo yes||echo no
  4. pause>nul
复制代码
2

评分人数

    • Seter: 强悍的..我第一反应也是用for...PB + 5
    • lxzzr: 思维敏捷!PB + 6
***共同提高***

TOP

回复 1楼 的帖子

  1. @echo off
  2. set "str=AC1Q"
  3. echo %str%|findstr "^[0-F]*$">nul&&echo.OK.&&pause>nul
  4. echo.NO.&pause>nul
复制代码

TOP

谢谢楼上几位,明白了findstr一般表达式的问题

TOP

回复 6楼 的帖子

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表