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

[文本处理] bat怎么给 字符串的 所有大写 前面 添加一组字符 +^

?           百度上一个答案也没有,参考也找不到,太神奇了

           其实,大写只是一部分

           我真正需要的转换,感觉特别复杂,例如:

           HsFa^^sd%Hg\

           转换过后:

           +^Hs+^Fa+^^+^^sd+^%+^Hg\

           是给每个大写,和 需要组合键才能 按出的 半角符号 前面 都加上 +^

           想办法替换,想办法添加,都可以,只要结果正确就行

           请继续朝下看,

           我总结了一下,需要组合键才能输出的半角符号:    ~!@#$%^&*()_+|{}:"<>?

           而其中  &<>^|"    这些符号无法从文本中直接读出 ,想要读出,就需要在这些符号前面都加上^

           总之,这几个符号似乎都不能正常读取和输出,都要加以修改

           下来是我真正需要的:

           同一文件夹下,我有个文本文档    a.txt,其内容:
           第一行内容为:    HsFa^^sd%Hg\---dfD*|>3pas$
           第二行内容为:    格式如上,都是用  --- 来隔开的,字母数字符号全都是随机的,总长度不超过30

           一共有几千行,所有内容都是由  数字,字母,和这些~!@#$%^&*()_+|{}:"<>?半角符号混搭号组成。

           我现在要随机抽取其中一行,比如抽取到了第一行,然后将第一行正确输出到文本 b.txt,和 f.txt,每抽取一次,b.txt 都会被覆盖,而 f.txt 内容却一直在追加。

           然后以另一种格式输出到   c.txt,其内容一共两行,格式如下:

           第一行内容为: HsFa^^sd%Hg\
第二行内容为: dfD*|>3pas$

           每抽取一次,c.txt 同样被覆盖

           就是说,中间的 --- 会被删除,并且--- 后面的字符串会另起一行

           而同一文件夹下,还有一个文本文档 d.txt ,这个文本文档里面内容很多,并不需要详细说明,但是其中有两个 特别的字符串 @@@和@@@@@,我需要将@@@替换成HsFa^^sd%Hg\ ,将@@@@@替换成dfD*|>3pas$,然后输出到 e.txt。   同样,每执行一次,e.txt都会被覆盖

           而原文件  a.txt    每抽取一行,就会删除这一行,也就是说,a.txt每次都在变,行数每次都在减少一行,所以在随机抽取的时候,a.txt 的总行数,一直都是这个变量,每次抽取,a.txt的第一行和最后一行都有几率被抽中,保证不会出现那种明明 只有300行,却去抽301行的情况

           总结下:

           就是,原本这个文件夹里面 只有 a.txt 和 d.txt,执行以后,就多了 b.txt  ,c.txt  ,e.txt ,f.txt

           我觉得 难 就 难在 各种 特殊字符 的区分上,还有  读入 和输出上

           不论是在这个文件夹下写了一个bat,还是vbs,并且执行过程如何,其结果就是,双击一下,就会生成  b.txt  ,c.txt  ,e.txt  ,f.txt  这四个txt文件

           字符,所以需要的是针对我上述的那些字符

           各位大佬看看如何,觉得这个很复杂还是简单呢,我自己尝试了好久,一直没弄出来

           有么有大佬有空能写出来,当然代码越短越好

           希望我表达的还算清楚吧,更希望大佬们能看到我的帖子

  1. sed "s/[A-Z~!@#$%^&*()_+{}|:\x22<>?]/^+&/g" 修改前.txt >修改后.txt
复制代码
下载地址:http://www.bathome.net/s/tool/index.html?key=sed

TOP

回复 2# CrLf


    谢谢 老哥,我先去试试。

TOP

返回列表