中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何判断变量中包含指定字符?
作者:
标题: [求助]如何判断变量中包含指定字符? 上一主题 | 下一主题
wangyc
新手上路





积分 13
发帖 11
注册 2007-2-24
状态 离线
『楼 主』:  [求助]如何判断变量中包含指定字符?

有时为了为用更少的代码完成所要的结果,通常只用一个for命令(为了避免多余重复的命令)
例如下例:
@echo off
for /f "delims=" %%i in ('dir /b *.txt') do copy %%i a\
pause
不知在这个for中能否判断变量%%i中包含了指定的字符
如果%%i中包含123 则 copy %%i a\
如果%%i中包含345 则 copy %%i b\
如果%%i中不包含以上则 copy %%i c\

[ Last edited by wangyc on 2010-3-21 at 00:37 ]

2010-3-21 00:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

dir + findstr



2010-3-21 11:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 3 楼』:  

给你举个简单的例子:
@echo off&setlocal enabledelayedexpansion
for /l %%i in (1 1 9) do (echo 当前变量的值:%%i
echo %%i|findstr [0-9]>nul
if !ERRORLEVEL!==0 echo 包含0到9中的任意字符
echo %%i|findstr [1-5]>nul
if !ERRORLEVEL!==0 echo 包含1到5中的任意字符
echo %%i|findstr [2468]>nul
if !ERRORLEVEL!==0 echo 包含2468中的任意字符)
pause




批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-3-21 14:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangyc
新手上路





积分 13
发帖 11
注册 2007-2-24
状态 离线
『第 4 楼』:  

谢谢,我用findstr实现了我要的功能

2010-3-22 08:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: