中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 我的findstr怎么了 上一主题 | 下一主题
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 16 楼』:  

楼主的错误到底是怎么回事那?以前看到过那样的错误

2006-9-27 09:55
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by namejm at 2006-9-27 09:53:


  从这段代码来看,你是在CMD窗口下执行的。从你的整体意思来看,你是想先转到 C 盘根目录下之后再创建文件夹,但是你最开始的那一句就没冠...

我怎么执行没有错误那???不解

2006-9-27 09:57
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『第 18 楼』:  

其实for扩充到文件名还是有BUG的:

for语句中执行dir /ad或dir /a-d中用%%~ni扩充到文件名, FOR语句处理机制可能是把最后一个路径"\"符号后面"."号和后面的后缀去掉, 只显示文件名;

而如果/ad只查找文件夹, 最后的路径"/"后面没有"."号, 它会整个显示最后一个目录名.

[ Last edited by pengfei on 2006-9-27 at 12:10 ]

2006-9-27 09:59
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『第 19 楼』:  



  Quote:
Originally posted by he200377 at 2006-9-27 09:57:

我怎么执行没有错误那???不解

你那段代码第一个命令是存在缺陷的, 假设你在D盘运行...

不过for语句的%%~ni扩充的确是有bug的, 当时我也没有测试. 后来才发现他的扩充机制存在问题.

[ Last edited by pengfei on 2006-9-27 at 10:24 ]

2006-9-27 10:04
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
smileseeker
中级用户




积分 316
发帖 83
注册 2005-3-1
状态 离线
『第 20 楼』:  

感谢各位朋友的热心帮助

小弟的目的是这样的 通过下面代码

echo.>temp.txt
for /f %%i in ('dir /ad /s /b') do (echo %%~ni|findstr "^[0-9]*$" && echo %%i >>temp.txt)
for /f %%i in (temp.txt) do del /q %%i\*.*


解决http://www.cn-dos.net/forum/viewthread.php?tid=23404&fpage=1

但是就是卡在findstr上

[ Last edited by smileseeker on 2006-9-28 at 05:08 ]

2006-9-28 04:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
smileseeker
中级用户




积分 316
发帖 83
注册 2005-3-1
状态 离线
『第 21 楼』:  



  Quote:
Originally posted by namejm at 2006-9-27 09:44 AM:


  此言差矣。CMD下的 dir 是可以区分出某个file到底是文件夹还是文件的,要不然,dir命令还要 /ad 和 /a-d 这两个参数干什么呢?如果按照你的理解 ...

同意

D:\scripts>for /f %i in ("\123.456") do echo %~ni

D:\scripts>echo 123
123

2006-9-28 04:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
smileseeker
中级用户




积分 316
发帖 83
注册 2005-3-1
状态 离线
『第 22 楼』:  

这是我以前在论坛上找的一段批处理脚本

set /p aa=Enter your code:
echo %aa% | findstr "^[a-z][A-Z]*$"||echo ERROR!!!
pause


我记得当时好像是可以执行的    现在居然是这样的执行结果

D:\scripts>set /p aa=Enter your code:
Enter your code:
D:\scripts>echo dfg     | findstr "^[a-z][A-Z]*$"  || echo ERROR!!!

D:\scripts>set /p aa=Enter your code:
Enter your code:
D:\scripts>echo dfg      | findstr "^[a-z][A-Z]*$"  || echo ERROR!!!

D:\scripts>set /p aa=Enter your code:
Enter your code:
D:\scripts>echo dfg       | findstr "^[a-z][A-Z]*$"  || echo ERROR!!!

D:\scripts>set /p aa=Enter your code:
Enter your code:
D:\scripts>echo dfg        | findstr "^[a-z][A-Z]*$"  || echo ERROR!!!

D:\scripts>set /p aa=Enter your code:
Enter your code:
D:\scripts>echo dfg         | findstr "^[a-z][A-Z]*$"  || echo ERROR!!!

D:\scripts>set /p aa=Enter your code:
Enter your code:
D:\scripts>echo dfg          | findstr "^[a-z][A-Z]*$"  || echo ERROR!!!


无语

2006-9-28 04:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kgdetg1127
初级用户





积分 158
发帖 89
注册 2007-4-25
状态 离线
『第 23 楼』:  

顶啊!!!

2007-10-11 21:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: