中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-15 19:33
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 我的findstr怎么了 查看 2,813 回复 22
16 发表于 2006-09-27 09:55 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
楼主的错误到底是怎么回事那?以前看到过那样的错误
17 发表于 2006-09-27 09:57 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
Originally posted by namejm at 2006-9-27 09:53:


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

我怎么执行没有错误那???不解
18 发表于 2006-09-27 09:59 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
UID 58987
来自 湖南.娄底
状态 离线
其实for扩充到文件名还是有BUG的:

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

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

[ Last edited by pengfei on 2006-9-27 at 12:10 ]
19 发表于 2006-09-27 10:04 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
UID 58987
来自 湖南.娄底
状态 离线
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 ]
20 发表于 2006-09-28 04:06 ·  中国 福建 三明 电信
中级用户
★★
积分 316
发帖 83
注册 2005-03-01 00:00
UID 36626
性别 男
状态 离线
感谢各位朋友的热心帮助

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

echo.>temp.txt
for /f %%i in ('dir /ad /s /b') do (echo %%~ni|findstr "^*$" && 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 ]
21 发表于 2006-09-28 04:14 ·  中国 福建 三明 电信
中级用户
★★
积分 316
发帖 83
注册 2005-03-01 00:00
UID 36626
性别 男
状态 离线
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
22 发表于 2006-09-28 04:24 ·  中国 福建 三明 电信
中级用户
★★
积分 316
发帖 83
注册 2005-03-01 00:00
UID 36626
性别 男
状态 离线
这是我以前在论坛上找的一段批处理脚本

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!!!


无语
23 发表于 2007-10-11 21:25 ·  中国 浙江 温州 电信
初级用户
★★
积分 158
发帖 89
注册 2007-04-25 08:06
UID 86402
性别 男
状态 离线
顶啊!!!
论坛跳转: