中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]URL编码转换||FOR嵌套输出两个文件的变量
作者:
标题: [求助]URL编码转换||FOR嵌套输出两个文件的变量 上一主题 | 下一主题
flybird2020
初级用户





积分 103
发帖 52
注册 2007-4-13
状态 离线
『楼 主』:  [求助]URL编码转换||FOR嵌套输出两个文件的变量

I、在论坛看了半天没找到和我的问题相似的,如果有相似的我没发现,抱歉给大家添麻烦了
II、问题描述:
1、已有A.txt,里面每行只有一条数据(可能有N行,N>1000),我希望把它们批量转换为URL(UTF8)编码(英文和数字不做改变),中文转换(如“我”的URL编码为“%E6%88%91”),再在每一个未修改字段的后面以TABLE(制表符)为分隔,放上修改后的字段,如C.txt(跳过B.txt)
2、但是,我到处找不到可以改成这种编码的代码,只能通过这个网站来生成代码“http://seohelper.cn/tools/urlencode”,再复制到B.txt里。可但是,把A和B合成到一起生成C.txt这一步我也不会(#_#,笨的很)

III、以上就是我目前的困惑,那么在困惑中有两个问题
1、能否达成“把A.txt中的数据批量转化为URL编码,输出结果类似C.txt”
2、如果不能转化,那我只能到网页上去转化一次再存到B.txt中,那么A和B如何合并能达成C.txt的效果呢。
谢谢大家,谢谢
附:简单化后的三个文档
A.txt

感谢
CNDOSNET
的所有兄弟

呵呵

B.txt
%E6%88%91
%E6%84%9F%E8%B0%A2
CNDOSNET
%E7%9A%84%E6%89%80%E6%9C%89%E5%85%84%E5%BC%9F
%E4%BB%AC
%E5%91%B5%E5%91%B5

C.txt(A和B的合并,分隔符是TABLE制表符)
我        %E6%88%91
感谢        %E6%84%9F%E8%B0%A2
CNDOSNET        CNDOSNET
的所有兄弟        %E7%9A%84%E6%89%80%E6%9C%89%E5%85%84%E5%BC%9F
们        %E4%BB%AC
呵呵        %E5%91%B5%E5%91%B5
[ Last edited by flybird2020 on 2008-12-31 at 10:34 ]

2008-12-30 20:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
flybird2020
初级用户





积分 103
发帖 52
注册 2007-4-13
状态 离线
『第 2 楼』:  

顶一下。。。到第二页了
不知道我的问题有高人回答么。。。
还是太简单了没人理会。。。

2008-12-31 14:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hackerscans
初级用户





积分 73
发帖 51
注册 2007-8-31
状态 离线
『第 3 楼』:  

肯定能,帮你顶。

2008-12-31 14:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
flybird2020
初级用户





积分 103
发帖 52
注册 2007-4-13
状态 离线
『第 4 楼』:  

再顶下,希望在元旦这几天能有人回复一下
顺带谢下楼上的哥们儿

2009-1-1 01:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ily2013
中级用户





积分 247
发帖 83
注册 2005-9-12
状态 离线
『第 5 楼』:  

在这里http://www.cn-dos.net/forum/viewthread.php?tid=42625&fpage=1找一个hdump的文件,配合sed和for应该是很容易的事情,具体代码就自己写吧。hdump真是好,我只告诉你,可别跟其他人说啊^_^

2009-1-1 18:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
linee
初级用户





积分 94
发帖 49
注册 2008-12-14
状态 离线
『第 6 楼』:  

水平有限,借用[讨论]最大限度原样输出含特殊字符的指定行内容的代码给你个初步方案,
@echo off
set/a i=1
for /f "tokens=* delims=" %%j in (a.txt) do call set "a%%i%%=%%j"&set/a i+=1
set/a i=1&cd.>c.txt
for /f "tokens=* delims=" %%j in ('findstr /n .* b.txt') do (
        set "var=%%j"
        setlocal enabledelayedexpansion
        set var=!var:*:=!
        call set /p=%%a!i!%%        <nul>>c.txt
        (echo.!var!)>>c.txt
        endlocal
        set/a i+=1
)
试试看。说明一点就是第一个循环只能处理如a.txt这种没特殊字符的文件,第二个循环可以处理如b.txt这种有特殊字符的文件。

[ Last edited by linee on 2009-1-1 at 22:51 ]

2009-1-1 21:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: