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

[文本处理] 提取内容,组合与合并方向的批处理,谢谢您

您好,先谢谢您了。
下面的文本的第3 、 4行中,分部着一些中英日语言的词语,每个词用英文逗号隔开。
而其中有些词开头带# ,有些不带。

请帮忙提取# 开头的词,组合排列成1个新的行,插入到第2行的下面,然后删除原来的3 4行所有的内容。从而组成新的内容。

Ao - 凪白みと的插画
Ao by 凪白みと <div class="info"><p>
原创7500收藏,腋下,armed girls,#白发,swordsman
#オリジナル7500users入り,腋,#武器娘,白发,#剑士
90212924

Ao - 凪白みと的插画
Ao by 凪白みと <div class="info"><p>
原创7500收藏,腋下,armed girls,#白发,swordsman
#オリジナル7500users入り,腋,#武器娘,白发,#剑士
90212924


效果如下:
  1. Ao - 凪白みと的插画
  2. Ao by 凪白みと <div class="info"><p>
  3. オリジナル7500users入り,武器娘,白发,剑士
  4. 90212924
  5. Ao - 凪白みと的插画
  6. Ao by 凪白みと <div class="info"><p>
  7. オリジナル7500users入り,武器娘,白发,剑士
  8. 90212924
复制代码
谢谢!!!!

回复 13# qixiaobin0715


    什么是伸手党

TOP

回复 39# 灯塔彭于晏
  1. var srcFile = 'E:\\Test\\a.txt';     //源文件路径
  2. var dstFile = new ActiveXObject('WScript.Shell').SpecialFolders('Desktop') + '\\1.txt'; //目标文件路径
  3. var arr = [], i = 0;
  4. var fso = new ActiveXObject('Scripting.FileSystemObject');
  5. var objFile = fso.OpenTextFile(srcFile, 1);
  6. while (!objFile.AtEndOfStream){
  7.     var s = objFile.ReadLine();
  8.     if ( ++i % 6 == 5 && s.indexOf('#') < 0 ) arr.push(i);
  9. }
  10. fso.OpenTextFile(dstFile, 2, true).Write(arr.join('\r\n'));
复制代码

TOP

回复 38# WHY


    您好WHY,又来骚扰了。 周末愉快!  

有一段代码,如下:
共有4组内容,每组内容有6行。 在第5行中,会出现被#号标记的词。
  1. Shine - wlop的[@@]啊
  2. <div class="tip2"><div class="good1">Shine by wlop [@@] 。无敌的 [@@] <div class="user-info">
  3. [@@]
  4. ,   狮子   ,   #身体链      ,   美女和野兽,   赤脚   ,
  5. 86261514
  6. 11月24日 - ろるあ/Rolua的[@@]啊
  7. <div class="tip2"><div class="good1">Twitter:主 [@@]   。无敌的 [@@]页:twitter.com/Rolua_N
  8. [@@]
  9. ,   车厢内   ,   光影   ,   #巴士   ,   水手服   ,   女高中生      ,
  10. 71820780
  11. 海边の大** - 兎ipoi的[@@]啊
  12. <div class="tip2"><div class="good1">海边の大** by [@@]   。无敌的 [@@]兎ipoi
  13. [@@]
  14. ,   Virtual YouTuber 10000+ 收藏   ,    泳装   ,   百鬼绫目   ,   
  15. 83751980
  16. Recital - RH/お仕事募集中的[@@]啊
  17. <div class="tip2"><div class="good1">Recital by RH/お仕事募集 [@@] 中 , 。无敌的 [@@]
  18. [@@]
  19. ,   白色连衣裙      ,   蝴蝶   ,   #女孩   ,
  20. 75393724
复制代码
如何用JS的形式,检测出第3组中没有#号词,并在桌面文本1.txt中列出具体的所在行数。 如上面的案例,会在1.txt中写1个17 。
如果存在多个,依次排列写出。

谢谢您啦。

TOP

回复 37# 灯塔彭于晏
  1. var srcFile = '1.txt';     //源文件名
  2. var dstFile = '2.txt';     //目标文件名
  3. var fso = new ActiveXObject('Scripting.FileSystemObject');
  4. var str = fso.OpenTextFile(srcFile, 1).ReadAll();
  5. str = str.replace(
  6.     /([^#]+)# *([^\r\n,]+?)(?= *,)/g,
  7.     function(s0, s1, s2){
  8.         s1 = s1.replace(/\[@@\]/g, s2);
  9.         return s1 + s2;
  10.     }
  11. )
  12. fso.OpenTextFile(dstFile, 2, true).Write(str);
复制代码
1

评分人数

TOP

回复 34# WHY


    您好,WHY,根据您之前的代码,能否再加上一个条件。 源代码如下:
  1. var srcFile = 'charu2.txt';     //源文件名
  2. var dstFile = 'wanjie.txt';     //目标文件名
  3. var fso = new ActiveXObject('Scripting.FileSystemObject');
  4. var str = fso.OpentextFile(srcFile, 1).ReadAll();
  5. str = str.replace(/\[@@\]([^#]+)# *([^,]*\S)(?= *,)/g, '$2$1$2');
  6. fso.OpentextFile(dstFile, 2, true).Write(str);
复制代码
内容模板如下:(之前是提取#号次到1个[@@]中。 现在又额外添加了2处[@@]位置。 想实现效果如末尾。
  1. Shine - wlop的[@@]啊
  2. <div class="tip2"><div class="good1">Shine by wlop [@@] 。无敌的 [@@] <div class="user-info">
  3. ,   狮子   ,   #身体链      ,   美女和野兽,   赤脚   ,
  4. 86261514
  5. 11月24日 - ろるあ/Rolua的[@@]啊
  6. <div class="tip2"><div class="good1">Twitter:主 [@@]   。无敌的 [@@]页:twitter.com/Rolua_N
  7. ,   车厢内   ,   光影   ,   #巴士   ,   水手服   ,   女高中生      ,
  8. 71820780
  9. 海边の大** - 兎ipoi的[@@]啊
  10. <div class="tip2"><div class="good1">海边の大** by [@@]   。无敌的 [@@]兎ipoi
  11. ,   Virtual YouTuber 10000+ 收藏   ,   #泳装   ,   百鬼绫目   ,   
  12. 83751980
  13. Recital - RH/お仕事募集中的[@@]啊
  14. <div class="tip2"><div class="good1">Recital by RH/お仕事募集 [@@] 中 , 。无敌的 [@@]
  15. ,   白色连衣裙      ,   蝴蝶   ,   #女孩   ,
  16. 75393724
复制代码
  1. Shine - wlop的身体链啊
  2. <div class="tip2"><div class="good1">Shine by wlop 身体链。无敌的  身体链 <div class="user-info">
  3. ,   狮子   ,   #身体链      ,   美女和野兽,   赤脚   ,
  4. 86261514
  5. 11月24日 - ろるあ/Rolua的巴士啊
  6. <div class="tip2"><div class="good1">Twitter:主 巴士  。无敌的巴士页:twitter.com/Rolua_N
  7. ,   车厢内   ,   光影   ,   #巴士   ,   水手服   ,   女高中生      ,
  8. 71820780
  9. 海边の大** - 兎ipoi的泳装啊
  10. <div class="tip2"><div class="good1">海边の大** by泳装  。无敌的  泳装兎ipoi
  11. ,   Virtual YouTuber 10000+ 收藏   ,   #泳装   ,   百鬼绫目   ,   
  12. 83751980
  13. Recital - RH/お仕事募集中的女孩啊
  14. <div class="tip2"><div class="good1">Recital by RH/お仕事募集 女孩中 , 。无敌的 女孩
  15. ,   白色连衣裙      ,   蝴蝶   ,   #女孩   ,
  16. 75393724
复制代码
1个词对应3个位置,谢谢您啦。 周末愉快!

TOP

本帖最后由 WHY 于 2021-6-7 12:43 编辑

回复 35# 灯塔彭于晏
  1. str = str.replace(/\[@@\]([^#]+)# *([^,]*\S)(?= *,)/g, '$2$1$2');
复制代码
1

评分人数

TOP

本帖最后由 灯塔彭于晏 于 2021-6-7 11:13 编辑

回复 34# WHY


    请问,如果
  1. ,   车厢内   ,   光影   ,   #巴士   ,   水手服   ,   女高中生      ,
复制代码
中的 # 和 巴士 之间有空格,在抓取时能自动忽略掉空格吗?
比如:
  1. ,   车厢内   ,   光影   ,   #  巴士   ,   水手服   ,   女高中生      ,
复制代码
,这样也会识别出 巴士 字样。
现在有空格并不会识别出文字!

其次,是如果文字后面紧跟一个逗号,比如
  1. #巴士,
复制代码
而不是
  1. #巴士    ,
复制代码
那么这个逗号也会被识别。能否给取消掉?
--- 邪恶分割线 ---
需要改代码的哪个部分呢?谢谢!

谢谢!谢谢!

TOP

本帖最后由 WHY 于 2021-6-6 19:10 编辑

回复 30# 灯塔彭于晏
  1. var srcFile = '1.txt';     //源文件名
  2. var dstFile = '2.txt';     //目标文件名
  3. var fso = new ActiveXObject('Scripting.FileSystemObject');
  4. var str = fso.OpentextFile(srcFile, 1).ReadAll();
  5. str = str.replace(/\[@@\]([^#]+)#(\S+)/g, '$2$1$2');
  6. fso.OpentextFile(dstFile, 2, true).Write(str);
  7. WSH.Echo('Done')
复制代码
1

评分人数

TOP

回复 28# 灯塔彭于晏
  1. var srcDir = 'E:\\Test\\IMG'; //存放照片的文件夹路径
  2. var arr = [];
  3. var fso = new ActiveXObject('Scripting.FileSystemObject');
  4. var img = new ActiveXObject('WIA.ImageFile');
  5. var e = new Enumerator(fso.GetFolder(srcDir).Files);
  6. for (;!e.atEnd();e.moveNext()) {
  7.     var file = e.item().Path;
  8.     if (!/\.(?:jpg|png)$/i.test(file)) continue;
  9.     img.LoadFile(file);
  10.     var w = 1 * img.Width;
  11.     var h = 1 * img.Height;
  12.     if (w > 1700 && h > 1000) arr.push(e.item().Name);
  13. }
  14. var wshShell = new ActiveXObject('WScript.Shell');
  15. var listFile = wshShell.SpecialFolders('Desktop') + '\\c.txt';   //文件列表
  16. fso.OpentextFile(listFile, 2, true).WriteLine(arr.join('\r\n'));
  17. WSH.Echo('Done');
复制代码

TOP

【第三行的每个 , 逗号之间,会存在空格】

TOP

【已解决】 求助特定字符复制到指定位置的代码。 谢谢WHY

本帖最后由 灯塔彭于晏 于 2021-6-6 19:23 编辑

请帮帮忙, 下面是4组内容(实际会有很多组。 每组4行,每组之间没有空行)。 每组内容中的第三行,有一个词是被#标记的。 请将每组内容中#与英文逗号之间的词,复制到每组内容的第一行中的  [@@]处。
被标记的#号词中的#号会消失。
  1. Shine - wlop的[@@]啊
  2. <div class="tip2"><div class="goodbobopic">Shine by wlop <div class="user-info">
  3. ,   狮子   ,   #身体链      ,   美女和野兽,   赤脚   ,
  4. 86261514
  5. 11月24日 - ろるあ/Rolua的[@@]啊
  6. <div class="tip2"><div class="goodbobopic">Twitter:主页:twitter.com/Rolua_N
  7. ,   车厢内   ,   光影   ,   #巴士   ,   水手服   ,   女高中生      ,
  8. 71820780
  9. 海边の大** - 兎ipoi的[@@]啊
  10. <div class="tip2"><div class="goodbobopic">海边の大** by 兎ipoi
  11. ,   Virtual YouTuber 10000+ 收藏   ,   #泳装   ,   百鬼绫目   ,   
  12. 83751980
  13. Recital - RH/お仕事募集中的[@@]啊
  14. <div class="tip2"><div class="goodbobopic">Recital by RH/お仕事募集中
  15. ,   白色连衣裙      ,   蝴蝶   ,   #女孩   ,
  16. 75393724
复制代码
举一个例子,如下:
Shine - wlop的身体链啊
<div class="tip2"><div class="goodbobopic">Shine by wlop <div class="user-info">
,   狮子   ,   身体链      ,   美女和野兽,   赤脚   ,
86261514
……

很久以前在论坛里求过一段代码,一直拿来用在相似的场景。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in (b.txt) do (
  4.     set "s=%%i"
  5.     if "!s:>#<=!" NEQ "!s!" (
  6.         set /p "n="
  7.         for %%j in ("!n!") do set "s=!s:>#<=>%%~j<!"
  8.     )
  9.     echo;!s!
  10. )) < a.txt
  11. pause
复制代码
其他场景里都可以把2个文本的内容,按顺序依次插入到符号里。 但今天,是每个位置都插入全部的内容。
所以来请大哥哥们帮忙一下。
谢谢了。

TOP

回复 27# qixiaobin0715
  1. Shine - wlop的[@@]啊
  2. <div class="tip2"><div class="goodbobopic">Shine by wlop <div class="user-info">
  3. ,   狮子   ,   #身体链      ,   美女和野兽,   赤脚   ,
  4. 86261514
  5. 11月24日 - ろるあ/Rolua的[@@]啊
  6. <div class="tip2"><div class="goodbobopic">Twitter:主页:twitter.com/Rolua_N
  7. ,   车厢内   ,   光影   ,   #巴士   ,   水手服   ,   女高中生      ,
  8. 71820780
  9. 海边の大** - 兎ipoi的[@@]啊
  10. <div class="tip2"><div class="goodbobopic">海边の大** by 兎ipoi
  11. ,   Virtual YouTuber 10000+ 收藏   ,   #泳装   ,   百鬼绫目   ,   
  12. 83751980
  13. Recital - RH/お仕事募集中的[@@]啊
  14. <div class="tip2"><div class="goodbobopic">Recital by RH/お仕事募集中
  15. ,   白色连衣裙      ,   蝴蝶   ,   #女孩   ,
  16. 75393724
复制代码
请帮帮忙, 上面是4组内容(每组4行,每组之间没有空行)。 每组内容中的第三行,有一个词是被#标记的。 请将每组内容中的#号词,复制到每组内容的第一行中的  [@@]处。
但被标记的#号词 并不消失。但#号会消失。

谢谢

TOP

本帖最后由 灯塔彭于晏 于 2021-6-5 23:18 编辑

回复 27# qixiaobin0715


    哈哈哈,谢谢~ ~ ~

再帮我一下下吧,谢谢。 现在的代码输出完结果后,会变成下面的结果:
  1. 少女 祢豆子 - Vardan的[%]插画
  2. <div class="tip2"><div class="good2pic">系统警告 : 祢豆子使出了水之呼吸<p><p>#版权由 Dreamy商家 拥有 禁止商业用途 <div class="user-info"><div class="user-icon" style=" background-image:url('https://baidu.com/touxiang/20578368_7ebce48918498a5bef3b5cffb36d4261_170.jpg')"></div><div class="description"><div class="user-name submit-comment">[Pixiv]Vardanの作品 - P站ID:4346254</div></div></div></div></div><div class="info"><p>少女 祢豆子 - Vardan的插画 ~ Pixiv ArtWorks Id:75102802 ~ 分辨率:@@</p></div><p><img src="https://baidu.com/small/75102802.jpg"/></p>
  3. ,    ,   祢豆子队士   ,   日本刀   ,   灶门祢豆子   ,   鬼灭之刃   ,   同人,   涂鸦   ,   女孩,   少女,
  4. 75102802
  5. 原神 来一份冷肉拼盘 - 芒果猫Official的[%]插画
  6. <div class="tip2"><div class="good2pic">No.022<p>来一份冷肉拼盘<p>蔚蓝的天空,宁静的午后,<p>在蒙德的鹿猎人落座,荧犹豫着菜单上一个个菜名<p>香肠、火腿和培根,究竟哪个更美味?<p>精选各部位的兽肉绞碎成肉糜,<p>再精心调和制成的香肠无疑是肉食者的福音,<p>但是风干得恰到好处,纤维分明的火腿也让人欲罢不能。<p>油脂丰厚,让人食指大动的培根,<p>更是能为任何菜肴增色如果同样的问题也困扰着身为肉食者的你,<p>猎鹿人的冷肉拼盘就是完美的答案<p>派蒙留着口水说到:旅行者来一份冷肉拼盘吧。<p>荧:貌似主厨有事今天的厨师是来帮忙打工的香菱。<p>派蒙:啊香菱吗?派蒙有点担心。<p>荧:只是冷菜应该没什么问题吧,可以再来一杯果汁。<p>派蒙:派蒙赞同<p>派蒙:今天那个红色的家伙好像去林子里转悠了呢。不知道在想什么鬼点子。<p>荧:红色的家伙?哦你是说可莉吧,她和我说想去奔狼领串门了说说是找雷泽借秘密道具。<p>香菱:来啦来啦冷肉拼盘和果汁,我把肉都捏一起了吃起来口感保证很好。<p>派蒙:啊这 <div class="user-info"><div class="user-icon" style=" background-image:url('https://baidu.com/touxiang/20160870_9df887d2fd92b07200c1d38da8bb76d6_170.jpg')"></div><div class="description"><div class="user-name submit-comment">[Pixiv]芒果猫Officialの作品 - P站ID:40551423</div></div></div></div></div><div class="info"><p>原神 来一份冷肉拼盘 - 芒果猫Official的插画 ~ Pixiv ArtWorks Id:85612639 ~ 分辨率:@@</p></div><p><img src="https://baidu.com/small/85612639.jpg"/></p>
  7. ,   派蒙   ,原神   ,   ,   女孩,   长筒靴   ,   背景,   同人,   少女,   荧,原神   ,   原神   ,
  8. 85612639
  9. 黒发 2019/12/06 - sunhyunそんひょん的[%]插画
  10. <div class="tip2"><div class="good2pic">主页:twitter.com/sunhyun3715<p>3406 <div class="user-info"><div class="user-icon" style=" background-image:url('https://baidu.com/touxiang/15655575_45d9176d993097d12f900deb40a40ea6_170.jpg')"></div><div class="description"><div class="user-name submit-comment">[Pixiv]sunhyunそんひょんの作品 - P站ID:29362997</div></div></div></div></div><div class="info"><p>黒发 2019/12/06 - sunhyunそんひょん的插画 ~ Pixiv ArtWorks Id:78156644 ~ 分辨率:@@</p></div><p><img src="https://baidu.com/small/78156644.jpg"/></p>
  11. ,   一年   ,   萌袖      ,   少女   ,   女孩,   女高中生   ,   黑发   ,
  12. 78156644
复制代码
在每组的第一行处,有一个[%]的位置。
我们现在再标记一些#号字,这次是每组的第3行中,只会有1个#号字符。比如:
  1. 少女 祢豆子 - Vardan的[%]插画
  2. <div class="tip2"><div class="good2pic">系统警告 : 祢豆子使出了水之呼吸<p><p>#版权由 Dreamy商家 拥有 禁止商业用途 <div class="user-info"><div class="user-icon" style=" background-image:url('https://baidu.com/touxiang/20578368_7ebce48918498a5bef3b5cffb36d4261_170.jpg')"></div><div class="description"><div class="user-name submit-comment">[Pixiv]Vardanの作品 - P站ID:4346254</div></div></div></div></div><div class="info"><p>少女 祢豆子 - Vardan的插画 ~ Pixiv ArtWorks Id:75102802 ~ 分辨率:@@</p></div><p><img src="https://baidu.com/small/75102802.jpg"/></p>
  3. ,    ,   祢豆子队士   ,   日本刀   ,   #灶门祢豆子   ,   鬼灭之刃   ,   同人,   涂鸦   ,   女孩,   少女,
  4. 75102802
复制代码
请问。怎么样把#号标记的词,复制到[%]处,而#号词不会消失(相当于复制)。但#号会消失。
谢谢~效果如下:
  1. 少女 祢豆子 - Vardan的灶门祢豆子插画
  2. <div class="tip2"><div class="good2pic">系统警告 : 祢豆子使出了水之呼吸<p><p>#版权由 Dreamy商家 拥有 禁止商业用途 <div class="user-info"><div class="user-icon" style=" background-image:url('https://baidu.com/touxiang/20578368_7ebce48918498a5bef3b5cffb36d4261_170.jpg')"></div><div class="description"><div class="user-name submit-comment">[Pixiv]Vardanの作品 - P站ID:4346254</div></div></div></div></div><div class="info"><p>少女 祢豆子 - Vardan的插画 ~ Pixiv ArtWorks Id:75102802 ~ 分辨率:@@</p></div><p><img src="https://baidu.com/small/75102802.jpg"/></p>
  3. ,    ,   祢豆子队士   ,   日本刀   ,   灶门祢豆子   ,   鬼灭之刃   ,   同人,   涂鸦   ,   女孩,   少女,
  4. 75102802
复制代码
表达能力有限,我可以再编辑~!

TOP

回复 24# WHY


    您好,WHY大哥哥,您的代码一直效率很高。不知道能不能额外咨询一个功能的代码?

现有文件夹 A ,里面有约200张图片,图片名字的格式为: xxxx_p0 【xxxx是纯数字】。图片的格式为JPG 和 PNG 都有。

请问能否用JS的形式,跑一遍所有图片的分辨率,然后把【宽度大于 1700px ,高度大于1000px】的图片的完整名字(如  xxxx_p0.jpg/png ) ,以列表的形式输出到桌面的新文本 C.TXT中。
如:
12334_p0.jpg
2345_p0.png
1223_p0.jpg
……


谢谢您了。

TOP

返回列表