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

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

本帖最后由 cl2039996 于 2022-5-8 16:08 编辑

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

评分人数

回复 6# zaqmlp


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

TOP

需求5有问题吧,假设有句话
I take the ball which is on the table
难道这也算?
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

本帖最后由 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. }
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 2# zaqmlp


    期待您今天给写好!

TOP

回复 2# zaqmlp


    大佬,按照您的建议,双倍,共120元红包!您受累

TOP

报酬有点少,双倍还差不多
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

返回列表