标题: Windows 2003下Findstr命令的一个bug
[打印本页]
作者: Climbing
时间: 2006-4-26 12:13
标题: Windows 2003下Findstr命令的一个bug
为了给系统内的某个应用软件实现自动升级,需要从注册表中查询其安装目录,由于findstr支持正则表达式,因此打算使用findstr来完成这个任务,先用reg export命令导出对应的注册表项到一个文件中,但使用findstr直接查询这个文件,无论如何查询不到任何东西。
当时百思不得其解,后来发现reg export导出的注册表跟用regedit默认导出的注册表文件一样,都是Unicode编码,才想到有可能是Findstr不支持Unicode,于是将文件转成ANSI编码,果然恢复了正常。
后来发现,用“type Unicode文件 | findstr...”的形式也能正常工作。
同样是微软做的东西,type支持unicode,findstr却不支持,鄙视微软一下!
作者: JonePeng
时间: 2006-5-1 00:16
照这么说 findstr 就像16位DOS应用程序那样只支持 ANSI 了?
作者: Wengier
时间: 2006-5-1 06:23
findstr大概就跟普通的文件内容查找工具一样只能实现精确查找(即精确判断该文件中有没有此字符),而未通过Unicode转换故不支持Unicode查找吧。而type则纯粹是显示文件内容,所以可以对文件先做代码页转换后再显示出来。