中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-25 16:46
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何判断变量中包含指定字符? 查看 799 回复 3
楼 主 [求助]如何判断变量中包含指定字符? 发表于 2010-03-21 00:19 ·  中国 北京 联通
新手上路
积分 13
发帖 11
注册 2007-02-24 21:09
19年会员
UID 80087
性别 男
状态 离线
有时为了为用更少的代码完成所要的结果,通常只用一个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 ]
2 发表于 2010-03-21 11:06 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
dir + findstr
3 发表于 2010-03-21 14:55 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
给你举个简单的例子:
@echo off&setlocal enabledelayedexpansion
for /l %%i in (1 1 9) do (echo 当前变量的值:%%i
echo %%i|findstr >nul
if !ERRORLEVEL!==0 echo 包含0到9中的任意字符
echo %%i|findstr >nul
if !ERRORLEVEL!==0 echo 包含1到5中的任意字符
echo %%i|findstr >nul
if !ERRORLEVEL!==0 echo 包含2468中的任意字符)
pause
4 发表于 2010-03-22 08:47 ·  中国 北京 歌华宽带
新手上路
积分 13
发帖 11
注册 2007-02-24 21:09
19年会员
UID 80087
性别 男
状态 离线
谢谢,我用findstr实现了我要的功能
论坛跳转: