中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于findstr 和 "|" 连接符的问题
作者:
标题: 关于findstr 和 "|" 连接符的问题 上一主题 | 下一主题
ieutk
初级用户




积分 107
发帖 48
注册 2006-11-30
状态 离线
『楼 主』:  关于findstr 和 "|" 连接符的问题

如题:

我在编写一个这样的批处理文件进碰到一个这样的问题!
@echo off
setlocal enabledelayedexpansion
title design by ieutk
mode con: cols=78 lines=15
color 1a
set num=0

:input
cls&echo\&echo/
set name=
set /p name=  请输入你的名字:
if not defined name goto input
echo %name%|findstr "^[0-9a-zA-Z]*$">nul && goto st||msg /v /w %username% "  你输入的名字暂时不符合要求!   ">nul
goto input

:st
:: 计算输入的字符长度
set name=%name:~0,58%
set /a num+=1
for /f "delims=" %%a in ("%num%") do (
                              if not "!name:~%%a,1!"=="" goto st
                              set chi=%%a
                     )
set num=0
这样子可以正确执行代码,但是问题来啦
echo %name%|findstr "^[0-9a-zA-Z]*$">nul && goto st||msg /v /w %username% "  你输入的名字暂时不符合要求!   ">nul
看上面这句代码, "|" 连接符和它前后的代码之间没有空格,但是我如果改成
echo %name% |findstr "^[0-9a-zA-Z]*$">nul && goto st||msg /v /w %username% "  你输入的名字暂时不符合要求!   ">nul
这样的话就会执行后面的代码出现预置的提示!
就是在 %name% 和 | 之间加一个空格和不加空格结果不一样,想知道这是为什么呢?THS



她希望我把粪土变黄金,我希望她视黄金如粪土!
2007-6-19 23:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

echo %name% |findstr
这个是把%name%的值加上一个空格传递给findstr,因为你的匹配字符集[a-zA-Z0-9]里面没有空格,所以不成功。


echo %name%|findstr
仅仅是把%name%的值传递给findstr,所以可以成功。

   此帖被 +2 点积分    点击查看详情   
评分人:【 ieutk 分数: +2  时间:2007-6-19 23:41


2007-6-19 23:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ieutk
初级用户




积分 107
发帖 48
注册 2006-11-30
状态 离线
『第 3 楼』:  

大家帮我试试看有没有有问题,在我这是有问题!

我的系统是:
Microsoft Windows XP [版本 5.1.2600]



她希望我把粪土变黄金,我希望她视黄金如粪土!
2007-6-19 23:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ieutk
初级用户




积分 107
发帖 48
注册 2006-11-30
状态 离线
『第 4 楼』:  

哦,谢谢版主,看来对 findstr 的正则表达式还欠提高!



她希望我把粪土变黄金,我希望她视黄金如粪土!
2007-6-19 23:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: