Board logo

标题: 怪事,FOR循环竟然会跳到文件开始…… [打印本页]

作者: Vampire     时间: 2008-1-31 19:48    标题: 怪事,FOR循环竟然会跳到文件开始……

@echo off
echo Input the find string:
set /p fndstr=String:
for /f "delims=" %%a in ('dir /s/b .\*.java') do (
findstr /i /n "%fndstr%" "%%a"
echo %%a
echo ------------------------------------------------------
)
echo result was in file「findrst.txt」,please see there....
pause



请问各位达人,这是为何啊。想不通。。。
作者: Vampire     时间: 2008-1-31 19:57
晕,这会没人吗?只好明天来看看结果了。
拜托啦。
作者: fastslz     时间: 2008-1-31 23:47
代码没问题呀,如果*.java不是文本文件,怪事就不怪了
strings.exe "%%a"|findstr /i /n "%fndstr%"

http://www.microsoft.com/technet ... aneous/strings.mspx
作者: Vampire     时间: 2008-2-1 13:37


  Quote:
如果*.java不是文本文件,怪事就不怪了

可否详细解释下呢?谢谢。
作者: Vampire     时间: 2008-2-1 14:01
在CMD里面运行那句话可以出结果,但是在批处理中就不行了。谁能告诉下个中乾坤啊。万分感激呢。
作者: slore     时间: 2008-2-1 14:05
貌似unicode作怪

看那个e文说明,不是很懂。。。大概就是有些unicode的字符好像处理会有问题。。
作者: Vampire     时间: 2008-2-1 15:46
直接在CMD下运行FOR循环不会出错。又是为何?他们应该是同一级别的吧,这个应该不涉及延时之类的因素吧。
作者: slore     时间: 2008-2-1 15:49
那就是输出可能牵扯到吧。

C:\Documents and Settings\ayumi>cmd /?
启动 Windows XP 命令解释程序一个新的实例

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [[/S] [/C | /K] string]

/C      执行字符串指定的命令然后终断
/K      执行字符串指定的命令但保留
/S      在 /C 或 /K 后修改字符串处理(见下)
/Q      关闭回应
/D      从注册表中停用执行 AutoRun 命令(见下)
/A      使向内部管道或文件命令的输出成为 ANSI
/U      使向内部管道或文件命令的输出成为 Unicode


你改变下/U参数。。。