[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 为什么批处理echo输出给乱码了?

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. wget  "http://clubl.lexun.com/zone/onlineuser.aspx?cd=0&lxt=" -O 1.tmp
  4. grep "friUserid" 1.tmp > 2.tmp
  5. for /f "tokens=2 delims=>" %%a in (2.tmp) do (
  6.    set b=%%a
  7.    set b=!b:~0,-9!
  8.   echo !b! >> name.txt
  9. )
复制代码

为什么我这样写输出后name.txt会乱码呀?谁能帮我解决下吗?
由于附件最大只能上传200KB的,所以wget.exe和grep.exe两个第三方我上传不了,麻烦没有的去第三方的版块下载。谢谢了!

因为文本是utf-8编码的。。。
for /f的时候使用type

[ 本帖最后由 hanyeguxing 于 2010-4-26 22:13 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

原帖由 hanyeguxing 于 2010-4-26 22:11 发表
因为文本是utf-8编码的。。。
for /f的时候使用type
@echo off
setlocal enabledelayedexpansion
wget  "http://clubl.lexun.com/zone/onlineuser.aspx?cd=0&lxt=" -O 1.tmp
grep "friUserid" 1.tmp > 2.tmp
for /f "tokens=2 delims=>" %%a in ('type 2.tmp') do (
   set b=%%a
   set b=!b:~0,-9!
  echo !b! >> name.txt
)
我这样,为什么还是不行呢?

TOP

顶呀,,谁知道怎么解决?

TOP

楼主就不能把要处理的原始文本的相关信息和内容贴点或上传上来?
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

这个文件就是1.tmp呵呵,谢谢了。1.tmp就是通过wget下载下来的。

TOP

顶起来给大侠们看!

TOP

为什么,,还没人。。。知道肯定很多人都会。。为什么没人帮下呀,,

TOP

  1. @echo off
  2. wget  "http://clubl.lexun.com/zone/onlineuser.aspx?cd=0&lxt=" -O 1.tmp
  3. grep "friUserid" 1.tmp>2.tmp
  4. chcp 437 >nul
  5. for /f "tokens=2 delims=>" %%a in (2.tmp) do (set b=%%a
  6. setlocal enabledelayedexpansion
  7. >>name.txt echo.!b:~0^,-9!
  8. Endlocal)
复制代码

[ 本帖最后由 hanyeguxing 于 2010-4-28 18:50 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

chcp是第三方吗?如果不是的话,为什么我还是乱码呀。。。。

TOP

唉,,,等待,,

TOP

回复 10楼 的帖子

chcp是系统自带的命令,你亲自试试就知道了。

TOP

我亲试了,可是还是乱码。。。

TOP

下载的网页是 UTF-8 编码,而CMD只能识别ASCII和UNICODE(通常这么叫,全称是 unicode little-endian)编码,你需要转换成 UNICODE 编码。

没有测试,ConCMD.exe 是一个三方工具。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. wget  "http://clubl.lexun.com/zone/onlineuser.aspx?cd=0&lxt=" -O 1.tmp
  4. concmd /o:ule 1.tmp
  5. grep "friUserid" 1.tmp > 2.tmp
  6. for /f "tokens=2 delims=>" %%a in ('type 2.tmp') do (
  7.    set b=%%a
  8.    set b=!b:~0,-9!
  9.   echo !b! >> name.txt
  10. )
复制代码

[ 本帖最后由 Spring 于 2010-5-1 14:06 编辑 ]

TOP

返回列表