找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 13863|回复: 6

请求删除此帖,废弃无用了请求删除此帖,废弃无用了请求删除此帖,废弃无用了

  [复制链接]
发表于 2022-3-9 22:36:42 | 显示全部楼层 |阅读模式
本帖最后由 cl2039996 于 2022-5-8 16:08 编辑

请求删除此帖,废弃无用了请求删除此帖,废弃无用了请求删除此帖,废弃无用了请求删除此帖,废弃无用了请求删除此帖,废弃无用了

评分

参与人数 1PB +6 收起 理由
523066680 + 6 写需求也挺不容易的

查看全部评分

发表于 2022-3-12 15:59:45 | 显示全部楼层
报酬有点少,双倍还差不多
 楼主| 发表于 2022-3-12 16:43:28 | 显示全部楼层
回复 2# zaqmlp


    大佬,按照您的建议,双倍,共120元红包!您受累
 楼主| 发表于 2022-3-12 16:47:44 | 显示全部楼层
回复 2# zaqmlp


    期待您今天给写好!
发表于 2022-3-12 19:19:57 | 显示全部楼层
本帖最后由 zaqmlp 于 2022-3-26 23:12 编辑

bat存为ANSI/GB2312编码
  1. <# :
  2. cls&echo off&cd /d "%~dp0"
  3. powershell -NoProfile -ExecutionPolicy bypass "[IO.File]::ReadAllText("%~f0",[Text.Encoding]::GetEncoding('GB2312'))|Invoke-Expression"
  4. pause
  5. exit
  6. #>
  7. $txtfile=".\黑名单单词列表.txt";
  8. $newfolder="E:\单词归类";

  9. if(-not (test-path -literal $txtfile)){write-host ('"'+$txtfile+'" 未找到');exit;}

  10. $enc=[Text.Encoding]::GetEncoding('GB2312');
  11. $dic=New-Object 'System.Collections.Generic.Dictionary[string, string]';
  12. $text=[IO.File]::ReadAllLines($txtfile, $enc);
  13. for($i=0;$i -lt $text.length;$i++){
  14.     $key=$text[$i].trimend().ToLower();
  15.     if(-not $dic.ContainsKey($key)){
  16.         $dic.add($key, '');
  17.     }
  18. }

  19. $folders=@(dir -literal "."|?{$_ -is [System.IO.DirectoryInfo]});
  20. for($i=0;$i -lt $folders.length;$i++){
  21.     write-host $folders[$i].FullName;
  22.     $files=@(dir -literal $folders[$i].FullName|?{('.srt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
  23.     for($j=0;$j -lt $files.length;$j++){
  24.         write-host $files[$j].Name;
  25.         $oldtext=[IO.File]::ReadAllText($files[$j].FullName, $enc);
  26.         $arr=$oldtext.trim() -split '[\r\n]+';
  27.         if($arr.length -ge 3){
  28.             $oldline=$arr[2] -replace '<[^>]+?>','中';
  29.             $mm=[regex]::matches($arr[2], '<[^>]+?>');
  30.             $m=[regex]::matches($oldline, "(?i)[a-z'_\-\d]+");
  31.             foreach($it in $m){
  32.                 $isexist=$false;
  33.                 $word=$it.groups[0].value;
  34.                 $key=$word.ToLower();
  35.                 if($dic.ContainsKey($key)){
  36.                     $isexist=$true;
  37.                 }
  38.                 if((-not $isexist) -and ($word -match '[a-z]')){
  39.                     $newpath=$newfolder.trimend('\')+'\'+$word;
  40.                     if(-not (test-path -literal $newpath)){[void][IO.Directory]::CreateDirectory($newpath);}
  41.                     $newbasename="[{0}][{1}][{2}]" -f $word,$folders[$i].Name,(get-date).ToString('yyyy-MM-dd HH点mm分ss秒fff毫秒');
  42.                     $newsrt=$newpath+'\'+$newbasename+$files[$j].Extension;
  43.                     $reg="(?i)(?<=^|[^a-z'_\-\d])"+[regex]::Escape($word)+"(?=[^a-z'_\-\d]|$)";
  44.                     $newline=[regex]::replace($oldline, $reg, {
  45.                         param($z);
  46.                         '[b]<font color="#ff0000">'+$z.groups[0].value+'</font>[\b]';
  47.                     });
  48.                     if($mm.Count -ge 1){
  49.                         $global:n=0;
  50.                         $newline=[regex]::replace($newline, '中', {
  51.                             param($z);
  52.                             $mm[$global:n].groups[0].value;
  53.                             $global:n++;
  54.                         });
  55.                     }
  56.                     $brr=$arr.Clone();
  57.                     $brr[2]=$newline;
  58.                     $newtext=($brr -join "`r`n")+"`r`n`r`n"+'2'+"`r`n"+$arr[1]+"`r`n"+'{\an9}[b]<font color="#cccccc">'+$folders[$i].Name+'</font>[\b]';
  59.                     [IO.File]::WriteAllText($newsrt, $newtext, $enc);
  60.                     $newmp4=$newpath+'\'+$newbasename+'.mp4';
  61.                     $oldmp4=$folders[$i].FullName+'\'+$files[$j].BaseName+'..mp4';
  62.                     if(test-path -liter $oldmp4){
  63.                         copy-item -literal $oldmp4 $newmp4 -force;
  64.                     }else{
  65.                         $oldmp4=$folders[$i].FullName+'\'+$files[$j].BaseName+'.mp4';
  66.                         if(test-path -liter $oldmp4){
  67.                             copy-item -literal $oldmp4 $newmp4 -force;
  68.                         }
  69.                     }
  70.                 }
  71.             }
  72.         }
  73.     }
  74. }
复制代码
发表于 2022-3-12 19:36:08 | 显示全部楼层
需求5有问题吧,假设有句话
I take the ball which is on the table
难道这也算?
 楼主| 发表于 2022-3-12 22:37:33 | 显示全部楼层
回复 6# zaqmlp


    您真是为我想到了我考虑不周的地方,需求5的算法确实我想简单了。我再研究一下英语的各种例句,去琢磨一下怎么能够避免您说的那种问题。
需求5的迭代升级,容我过几天请您给与完善。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:07 , Processed in 0.020006 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表