[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
powershell
遍历当前目录所有txt文件(包括子目录)
以字体大小9的微软雅黑,计算字符宽度,宽度大于607时添加换行符(CRLF)
完事后,会在原来的文件名前添加new_new_前缀,生成新的txt文件
请不要吐槽效率
  1. #@&cls&pause&powershell "type -literalpath '%~f0'|out-string|iex"&pause&exit/b
  2. $linewidth=607
  3. $fontname='Microsoft YaHei'
  4. $fontsize=9
  5. $wd=@{}
  6. Add-Type -AssemblyName system.drawing
  7. $font=[System.Drawing.Font]::new($fontname,[single]$fontsize)
  8. $canvas=[System.Drawing.Graphics]::FromImage([System.Drawing.Bitmap]::new(64,64))
  9. $files=[object[]](gci -r -filter "*.txt")
  10. foreach($file in $files){
  11. $lines=[object[]](gc -Encoding utf8 -LiteralPath ($file.fullname))
  12. (0..($lines.length-1)).foreach({
  13. $line=$lines[$_].ToCharArray()
  14. if($line){
  15. $s=''
  16. $w=0
  17. $line|%{
  18. if($wd.Contains($_)){
  19. $w+=$wd[$_];$s+=$_
  20. }else{
  21. $z=$canvas.MeasureString($_,$font).width
  22. $wd.add($_,$z)
  23. $w+=$z;$s+=$_
  24. }
  25. if($w -gt $linewidth){$s+="`r`n";$w=0}
  26. }
  27. $lines[$_]=$s
  28. }
  29. })
  30. sc -Value $lines -Encoding utf8 -LiteralPath ($file.DirectoryName+"\new_new_"+$file.Name)
  31. }
复制代码
2

评分人数

TOP

返回列表