[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 pcl_test 于 2017-5-29 23:02 编辑
  1. @echo off
  2. powershell ^
  3.     ^<#去掉-r则不处理子文件夹#^>^
  4.     dir . -r^|?{$_ -is [System.IO.DirectoryInfo]}^|^
  5.     sort {$_.FullName.length} -desc^|%%{^
  6.         $tmpname=($_.Name -replace '[\u4e00-\u9fa5]').trim();^
  7.         write-host $_.FullName.replace('%~dp0','.\') -nonewline;^
  8.         if($tmpname -and ($tmpname -ne $_.Name)){^
  9.             $newname=$_.Parent.FullName+'\'+$tmpname;^
  10.             $n=0;^
  11.             while(Test-Path -LiteralPath $newname){^
  12.                 $n++;^
  13.                 $newname=$_.Parent.FullName+'\'+$tmpname+'_'+$n;^
  14.             };^
  15.             mv -LiteralPath $_.FullName $newname;^
  16.             write-host (' --^> '+($newname.split('\')[-1])) -ForegroundColor green;^
  17.         }else{^
  18.             write-host ' --^> 为纯汉字或不含汉字,不处理' -ForegroundColor red;^
  19.         }^
  20.     }
  21. pause
复制代码
3

评分人数

TOP

回复 20# 老刘1号

就顶楼所描述的问题而言,干掉双字节字符妥妥的

TOP

回复 23# 172043209
  1. @echo off
  2. powershell ^
  3.     ^<#去掉-r则不处理子文件夹#^>^
  4.     dir . -r^|?{$_ -is [System.IO.DirectoryInfo]}^|^
  5.     sort {$_.FullName.length} -desc^|%%{^
  6.         $tmpname=($_.Name -replace '[\u4e00-\u9fa5]').trim();^
  7.         write-host $_.FullName.replace('%~dp0','.\') -nonewline;^
  8.         if($tmpname -and ($tmpname -ne $_.Name)){^
  9.             $newname=$_.Parent.FullName+'\'+$tmpname;^
  10.             if(Test-Path -LiteralPath $newname){^
  11.                 dir -LiteralPath $_.FullName^|%%{^
  12.                     $subname=$newname+'\'+$_.Name;^
  13.                     $n=0;^
  14.                     while(Test-Path -LiteralPath $subname){^
  15.                         $n++;^
  16.                         if($_ -is [System.IO.DirectoryInfo]){^
  17.                             $subname=$newname+'\'+$_.Name+'_'+$n;^
  18.                         }else{^
  19.                             $subname=$newname+'\'+$_.BaseName+'_'+$n+$_.Extension;^
  20.                         };^
  21.                     };^
  22.                     mv -LiteralPath $_.FullName $subname;^
  23.                 };^
  24.                 del -LiteralPath $_.FullName -Force;^
  25.                 write-host (' --^> '+($newname.split('\')[-1])+' 重名项,合并处理') -ForegroundColor yellow;^
  26.             }else{^
  27.                 mv -LiteralPath $_.FullName $newname;^
  28.                 write-host (' --^> '+($newname.split('\')[-1])) -ForegroundColor green;^
  29.             };^
  30.         }else{^
  31.             write-host ' --^> 为纯汉字或不含汉字,不处理' -ForegroundColor red;^
  32.         }^
  33.     }
  34. pause
复制代码
1

评分人数

    • 172043209: 完美运行,爱死你了,版主技术 + 1

TOP

返回列表