Board logo

标题: [文本处理] [已解决]批处理如何查找若干CSV文件中出现乱码的文件? [打印本页]

作者: zhengwei007    时间: 2013-3-2 13:57     标题: [已解决]批处理如何查找若干CSV文件中出现乱码的文件?

本帖最后由 zhengwei007 于 2013-3-4 21:58 编辑

我有上百个CSV文件,我想通过批处理来查找这些CSV文件中,包含乱码的文件名有哪些?如何实现,请教达人!

现象:乱码内容不确定,出现位置不确定,乱码长度不确定。
作者: BAT-VBS    时间: 2013-3-2 16:08

请举例说明
作者: zhengwei007    时间: 2013-3-4 15:24

本帖最后由 zhengwei007 于 2013-3-4 16:01 编辑

我有若干个文件,文件内部是这样的:
FILENAME,DATA,TIME,FLAG
0酒楼宣传片,2013-1-31,15:24: 3,S
0酒楼宣传片,2013-1-31,15:25: 1,E
海南地产30秒,2013-1-31,15:25: 1,S
海南地产30秒,2013-1-31,15:25:32,E
LV时尚旅行系列鞋履,2013-1-31,15:25:32,S
LV时尚旅行系列鞋履,2013-1-31,15:26: 2,E
提在路上的乐趣,2013-1-31,15:26: 2,S
提在路上的乐趣,2013-1-31,15:26:36,E
茶道,2013-1-31,15:26:36,S
茶道,2013-1-31,15:27: 7,E
何为旅行,2013-1-31,15:27: 7,S
何为旅行,2013-1-31,15:27:53,E
塞班岛打高尔夫,2013-1-31,15:27:53,S
塞班岛打高尔夫,2013-1-31,15:28:22,E
温馨一家人,2013-1-31,15:28:22,S
温馨一家人,2013-1-31,15:28:43,E
1酒楼宣传片,2013-1-31,15:28:43,S
1酒楼宣传片,2013-1-31,15:29:19,E
团圆饭,2013-1-31,15:29:19,S
作者: zhengwei007    时间: 2013-3-4 15:25

本帖最后由 zhengwei007 于 2013-3-4 16:02 编辑

我试了这个代码:
  1. @echo off
  2. for /f "delims=" %%c in ('dir /b /a-d *.csv') do (
  3. find /c /i "  " "%%c" >nul
  4. if not errorlevel 1 echo %%c
  5. )
  6. pause
复制代码
按说能找到两个空格了,可是乱码这里明明有两个以上的空格的,但这命令找不到!!若改用乱码中的内容,就能找到!!
作者: zhengwei007    时间: 2013-3-4 15:55

本帖最后由 zhengwei007 于 2013-3-4 17:05 编辑

乱码文件:


把玩时光,2012-12-24,20:54:23,TS
把玩时光,2012-12-24,20:54:55,TE
风一样桀骜的男人,2012-12-24,20:54:55,TS
风一样桀骜的男人,2012-12-24,20:55:42,TE
劳力士MILGAUSS系列腕表,2012-12-24,20:55:42,TS
劳 y$ab?O癿 ;V同G'儸p阛?`?i 3奎? 7?鞍XPG?:龍 掰`發 ,@'佊?  黷? 
作者: zhengwei007    时间: 2013-3-4 15:56

这样的数据我用两个空格还真找不出来,请问有什么办法能找到这样无规律的乱码文件吗?
作者: Batcher    时间: 2013-3-4 17:18

回复 5# zhengwei007


    把乱码文件压缩一下,传上来我试试。
作者: zhengwei007    时间: 2013-3-4 17:36

[attach]6122[/attach]

[attach]6123[/attach]
作者: zhengwei007    时间: 2013-3-4 17:37

sh.rar中有3个文件,这三个文件都是带乱码的,而正常文件中是没有问题的,这些文件全在同一目录中,请楼上的朋友帮我看下,谢谢!!
作者: Batcher    时间: 2013-3-4 17:55

回复 9# zhengwei007
  1. @echo off
  2. for /f "delims=" %%c in ('dir /b /a-d *.csv') do (
  3.     find /c "  " "%%c" >nul || find /c "?" "%%c" >nul
  4.     if not errorlevel 1 echo %%c
  5. )
复制代码

作者: zhengwei007    时间: 2013-3-4 21:58

牛人,的确能找出来。3月15日等我拿到新数据后,再次测试一下,谢谢管理员!!!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2