标题: [文本处理] 批处理文本末尾随机提取txt的处理 [打印本页]
作者: fanfande 时间: 2011-11-26 21:11 标题: 批处理文本末尾随机提取txt的处理
本帖最后由 fanfande 于 2011-11-27 08:51 编辑
在指定的文件夹内有一批html 现在要在这批html的末尾随机添加一些信息!
这些信息我存在一个命名为a.txt里面,一行一个!大致就是下面这信息!- 文章来源:xxxxxxx,录入时间xxxxx
- 文章转载地址:xxxxxx,上传时间xxxx
- 文章发布日期:xxxxxxx,更新时间xxxx
- 本文来源:xxxxxx,作者: xxxxx
复制代码
有没有通过批处理的办法,让这个txt里面的文字随机的放到这批html文件的末尾呢?
备注:html末尾的特征是</body>也就是随机放在</body>之前就好了!并将新的结果生成在新的文件夹内
谢谢各位
我的初步思路- @echo off&SETLOCAL ENABLEDELAYEDEXPANSION
- if not exist newtxt\ md newtxt
- 读取a.txt
- 索引正规html文件夹
- 在for /f "delims=" </body>分割
- 然后
- random
- 可惜小弟屡试都不成功啊!基本功不扎实!
复制代码
特来求教,谢谢
作者: 545810831 时间: 2011-11-26 23:57
本帖最后由 545810831 于 2011-11-27 00:20 编辑
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in (a.txt) do (
- set /a m+=1
- set a!m!=%%i
- )
- for %%i in (*.html) do (
- set /a n+=1
- set b!n!=%%i
- )
- )
- if not exist 新文件夹 md 新文件夹
- if not exist 新文件夹\*.html copy *.html 新文件夹\
- :sta
- set /a num+=1,ran=!random!%%!m!+1
- echo !a%ran%!>>新文件夹\!b%num%!
- if !num! lss !n! goto sta
- pause
复制代码
作者: fanfande 时间: 2011-11-27 08:58
回复 2# 545810831
您好,我测试了一下!随机已经实现了,但是好像有地方没理解清楚!
是在html的末尾,而html的末尾是以</body>为特征的
也就是说a.txt的内容是随机放到每个html的</body>前面就可以!
目前测试下来好像把html很多代码都给删了
作者: powerbat 时间: 2011-11-28 00:13
未考虑文件编码,都当作gbk对待。- @set @n=0//&cscript.exe -e:jscript "%~f0"&exit /b
-
- folder1 = "html文件夹";
- folder2 = "新的文件夹";
- info = "a.txt";
-
- fso = new ActiveXObject("Scripting.FileSystemObject");
- fc = new Enumerator(fso.GetFolder(folder1).files);
- files = [];
- for (i=0; !fc.atEnd(); fc.moveNext()) {
- fp = fc.item().Path;
- if (/\.(html?)$/i.test(fp)) files[i++] = fp;
- }
- texts = fso.OpenTextFile(info).ReadAll().split("\r\n");
- if (!fso.FolderExists(folder2)) fso.CreateFolder(folder2);
- for (i=0; i<files.length; i++)
- {
- s = fso.OpenTextFile(files[i]).ReadAll();
- s = s.replace(/(?=<\/body>)/i, texts[parseInt(Math.random()*texts.length)]);
- fso.OpenTextFile(folder2+'\\'+files[i].replace(/.*\\/,'')).write(s));
- }
复制代码
作者: fanfande 时间: 2011-11-28 16:08
回复 2# 545810831
你好高手,我这样修改了一下(修改的意图是想让html文件放在一个文件夹里面的)- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in (a.txt) do (
- set /a m+=1
- set a!m!=%%i
- )
- for %%i in ("html文件夹/*.html") do (
- set /a n+=1
- set b!n!=%%i
- )
- )
- if not exist 新的文件夹 md 新的文件夹
- if not exist 新的文件夹\*.html copy *.html 新的文件夹\
- :sta
- set /a num+=1,ran=!random!%%!m!+1
- echo !a%ran%!>>新的文件夹\!b%num%!
- if !num! lss !n! goto sta
- pause
复制代码
但是运行下来错误了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |