无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3118|回复: 7
打印 上一主题 下一主题

超快速处理WinSxS.txt为wimlib格式列表

[复制链接]
跳转到指定楼层
1#
发表于 2022-4-1 20:30:41 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 黑中见白 于 2022-4-2 18:22 编辑

WinSxS.txt_处理为wimlib格式列表_ps命令_无忧论坛.ps1.cmd好像发错区了
嚓20583没有flash,上传不了
那就//重命名为WinSxS.txt_处理为wimlib格式列表_ps命令_无忧论坛.ps1.cmd

<# :
@powershell  -ex bypass -c "icm ([scriptblock]::Create((gc '%~f0' -Raw -Encoding UTF8)))"
exit
#>
#-WindowStyle Hidden
#[Ps1 To Exe]
Write-Host -ForegroundColor White ('powershell命令_hash快速txt去重')


function 排除 ($文本, $规则){


  $文本 | Select-String -Pattern $规则 -NotMatch #排除路径
}
function 保留  ($文本, $规则){
  $文本 | Select-String -Pattern $规则
}
  
function 正则替换 ($d, $a, $c){
  $d -replace ($a, $c) #删除盘符
}
function hash去重 ($数组) {
  $set = [System.Collections.Generic.HashSet[string]]@($数组)
  $set -join "`r`n"
}


function 等待($毫秒) { Start-Sleep -Milliseconds $毫秒 }
function 显示($提示, $c) {
  $a = -Join ($提示, $c)
  Write-Host -ForegroundColor White ($a)
}
function 退出 { exit }
function 结束进程($进程名) { Stop-Process -Name $进程名 }
#  $cmd32 = $cmd32 |  Select-String -Pattern ("\\Windows\\")   #保留系统盘''
  #  $cmd32 = $cmd32 -replace ($env:SystemDrive, "") #删除盘符
#  $cmd32 = $cmd32 -replace ("^.*.$env:SystemDrive\\", "") #删除盘符
  
  
  
  $默认保留目录=$默认保留目录+'\Windows\WinSxS\Catalogs'+"`r`n"
  $默认保留目录=$默认保留目录+'\Windows\WinSxS\desktop.ini'+"`r`n"
  $默认保留目录=$默认保留目录+'\Windows\WinSxS\FileMaps'+"`r`n"
  $默认保留目录=$默认保留目录+'\Windows\WinSxS\Manifests'+"`r`n"
  $默认保留目录=$默认保留目录+'\Windows\WinSxS\migration.xml'+"`r`n"
  $默认保留目录=$默认保留目录+'\Windows\WinSxS\pending.xml'+"`r`n"
  $默认保留目录=$默认保留目录+'\Windows\WinSxS\SettingsManifests'+"`r`n"
  $默认保留目录=$默认保留目录+'\Windows\winsxs\SystemResources\wcp.dll.mun'+"`r`n"
  $files = Get-Childitem -Recurse -Include 'WinSxS.txt'


foreach ($file in $files)   #遍历文件
{


   $line = GC $files -ReadCount 0


# $line =$line| Select-String -Pattern ("amd64_") -NotMatch #排除路径
# $line =$line| Select-String -Pattern (Gc .\block.ini) -NotMatch #排除路径

  $line =$line| Select-String -Pattern ("\\Windows\\WinSxS\\SettingsManifests\\","\\Windows\\WinSxS\\desktop.ini","\\Windows\\WinSxS\\FileMaps","\\Windows\\WinSxS\\Catalogs","\\Windows\\WinSxS\\migration.xml","\\Windows\\WinSxS\\pending.xml","\\Windows\\WinSxS\\SettingsManifests","\\Windows\\winsxs\\SystemResources\\wcp.dll.mun","\\Windows\\WinSxS\\Manifests\\","\\Windows\\WinSxS\\Temp","\\Windows\\WinSxS\\backup") -NotMatch #排除路径

  $line =$line  -replace ("^.*.\\WinSxS","\Windows\WinSxS")
    $line =$line.replace("\WinSxS\amd64_","\WinSxS\amd6412321")
  $line =$line.replace("\WinSxS\msil_","\WinSxS\msil12321")
  $line =$line.replace("\WinSxS\wow64_","\WinSxS\wow6412321")
    $line =$line.replace("\WinSxS\x86_","\WinSxS\x8612321")
#  $lmkk =$line| Select-String -Pattern ("_en-us_","_zh-cn_") #保留路径
#  $lmkk =$lmkk -replace ("en-us_.*.$","en-us_*")
# $lmkk =$lmkk -replace ("zh-cn_.*.$","zh-cn_*")
  # $lmkk =$lmkk -replace ("_.*._en-us","_*_en-us")
  # $lmkk =$lmkk -replace ("_.*._zh-cn","_*_zh-cn")
   
   
  # $line =$line| Select-String -Pattern ("_en-us_","_zh-cn_")  -NotMatch #排除路径
  $line =$line -replace ("_.*.$","_*")
  
  #  $line = $line + $lmkk
  
  $line =  hash去重 ($line)
  
  $line =$line.replace("12321","_")
}


$line = $默认保留目录+$line




$file='WinSxS_wimlib格式列表.txt'
Set-Content  -Path $file -Value $line
显示('执行完成,请查看WinSxS_wimlib格式列表.txt')
显示('WinSxS.txt_处理为wimlib格式列表_ps命令_无忧论坛.ps1.cmd')
显示('8秒自动退出')
等待(8000)
退出



8#
发表于 2022-4-2 12:17:01 | 只看该作者
谢谢分享。
回复

使用道具 举报

7#
发表于 2022-4-2 10:24:52 | 只看该作者
是不是直接保存成cmd就OK了,然后运行
回复

使用道具 举报

6#
发表于 2022-4-2 09:00:23 | 只看该作者
有批处理已经是更进一步了,当然能处理注册表就更完美了。
回复

使用道具 举报

5#
 楼主| 发表于 2022-4-1 21:54:04 | 只看该作者
Bluebells 发表于 2022-4-1 21:52
我是说, 仅处理 WinSxS 里面的目录文件, 而不处理其对应的注册表项, 那么那些注册表项就成残留垃圾

砍注册表容易出问题
回复

使用道具 举报

4#
发表于 2022-4-1 21:52:52 | 只看该作者
黑中见白 发表于 2022-4-1 21:10
减少体积,
这个用火绒剑类型软件监测出来的列表快速处理成正则

我是说, 仅处理 WinSxS 里面的目录文件, 而不处理其对应的注册表项, 那么那些注册表项就成残留垃圾

点评

砍注册表容易出问题  详情 回复 发表于 2022-4-1 21:54
回复

使用道具 举报

3#
 楼主| 发表于 2022-4-1 21:10:54 | 只看该作者
Bluebells 发表于 2022-4-1 21:07
为啥都是处理文件而从不处理对应的注册表项(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersio ...

减少体积,
这个用火绒剑类型软件监测出来的列表快速处理成正则

点评

我是说, 仅处理 WinSxS 里面的目录文件, 而不处理其对应的注册表项, 那么那些注册表项就成残留垃圾  详情 回复 发表于 2022-4-1 21:52
回复

使用道具 举报

2#
发表于 2022-4-1 21:07:25 | 只看该作者
为啥都是处理文件而从不处理对应的注册表项(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners 子项)

点评

减少体积, 这个用火绒剑类型软件监测出来的列表快速处理成正则  详情 回复 发表于 2022-4-1 21:10
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-15 16:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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