无忧启动论坛

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

[求助] 名单内删除不了,删除了非名单内的

[复制链接]
跳转到指定楼层
#
发表于 2024-9-2 22:22:36 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 wenbieba 于 2024-9-3 15:57 编辑

用此命令删除ReserveWinSxS.txt文本里的项,结果删除了文本名单之外的,折腾好久无果,麻烦各位大神指点哪里不对,

cd /d "%~dp0"
set Temp=%~dp0Temp
for /f "eol=: delims=" %%i in ('dir /b "%SystemDrive%\Windows\WinSxS" /ad^|findstr /vxilg:"%Temp%\ReserveWinSxS.txt"') do (
if exist "%SystemDrive%\Windows\WinSxS\%%i" (
cmd.exe /c takeown /f "%SystemDrive%\Windows\WinSxS\%%i"  /r /d y && icacls "%SystemDrive%\Windows\WinSxS\%%i" /grant administrators:F /t
RD /Q /S "%SystemDrive%\Windows\WinSxS\%%i" ))

ReserveWinSxS.txt名单,一项一行

_userexperience-desktop_
_dual_
-defender-
-senseclient-
-onedrive-
-mediaplayer-
-cursors_
-pinyinds-
-userexperience-
…………


28#
 楼主| 发表于 2024-9-5 22:21:26 | 只看该作者
holley2008 发表于 2024-9-5 14:47
改了下,换成当前目录了,输出log日志
我win7下测试正常

谢谢大佬,已成功
回复

使用道具 举报

27#
 楼主| 发表于 2024-9-5 18:07:42 | 只看该作者
本帖最后由 wenbieba 于 2024-9-5 18:11 编辑
holley2008 发表于 2024-9-5 14:47
改了下,换成当前目录了,输出log日志
我win7下测试正常

谢谢,我测试一下,辛苦大佬了
回复

使用道具 举报

26#
发表于 2024-9-5 14:47:39 | 只看该作者
wenbieba 发表于 2024-9-5 11:51
大佬你好,刚测试闪退了

改了下,换成当前目录了,输出log日志
我win7下测试正常
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. cd /d "%~dp0"
  4. set "CurrentDir=%~dp0"
  5. set "WinSxSPath=%SystemDrive%\Windows\WinSxS"
  6. set "LogFile=%CurrentDir%\script_log.txt"

  7. echo Script started at %date% %time% > "%LogFile%"

  8. for /f "usebackq delims=" %%a in ("%CurrentDir%\ReserveWinSxS.txt") do (
  9.     set "folderPattern=%%a"
  10.     if not "!folderPattern!"=="" (
  11.         echo Processing pattern: !folderPattern! >> "%LogFile%"
  12.         for /f "delims=" %%i in ('dir /b "%WinSxSPath%" /ad ^| findstr /i /c:"!folderPattern!"') do (
  13.             if exist "%WinSxSPath%\%%i" (
  14.                 echo Deleting: %%i >> "%LogFile%"
  15.                 takeown /f "%WinSxSPath%\%%i" /r /d y >> "%LogFile%" 2>&1
  16.                 icacls "%WinSxSPath%\%%i" /grant administrators:F /t >> "%LogFile%" 2>&1
  17.                 rd /s /q "%WinSxSPath%\%%i" >> "%LogFile%" 2>&1
  18.                 if %ERRORLEVEL% neq 0 (
  19.                     echo Failed to delete: %%i >> "%LogFile%"
  20.                 ) else (
  21.                     echo Successfully deleted: %%i >> "%LogFile%"
  22.                 )
  23.             )
  24.         )
  25.     )
  26. )

  27. echo Script ended at %date% %time% >> "%LogFile%"
  28. endlocal
复制代码

点评

谢谢大佬,已成功  详情 回复 发表于 2024-9-5 22:21
谢谢,我从测试一下,位置放错了  发表于 2024-9-5 18:13
怪了,我允许闪退,难道系统有问题。其他批处理正常  详情 回复 发表于 2024-9-5 18:07
回复

使用道具 举报

25#
 楼主| 发表于 2024-9-5 11:51:52 | 只看该作者

大佬你好,刚测试闪退了

点评

改了下,换成当前目录了,输出log日志 我win7下测试正常  详情 回复 发表于 2024-9-5 14:47
回复

使用道具 举报

24#
发表于 2024-9-5 09:38:15 | 只看该作者
wenbieba 发表于 2024-9-5 09:25
是的,轻微精简一下

如果是PE的话,那可以精简的狠一些,可参照骨头PE的精简法
回复

使用道具 举报

23#
发表于 2024-9-5 09:31:55 | 只看该作者
名单里只放一个文件练习
回复

使用道具 举报

22#
 楼主| 发表于 2024-9-5 09:25:44 | 只看该作者
martin313 发表于 2024-9-5 09:17
这是在折腾 WinSxS 的精简么

是的,轻微精简一下

点评

如果是PE的话,那可以精简的狠一些,可参照骨头PE的精简法  详情 回复 发表于 2024-9-5 09:38
回复

使用道具 举报

21#
发表于 2024-9-5 09:22:18 | 只看该作者
1
回复

使用道具 举报

20#
发表于 2024-9-5 09:19:00 | 只看该作者
看不懂,学习下
回复

使用道具 举报

19#
发表于 2024-9-5 09:17:37 | 只看该作者
这是在折腾 WinSxS 的精简么

点评

是的,轻微精简一下  详情 回复 发表于 2024-9-5 09:25
回复

使用道具 举报

18#
 楼主| 发表于 2024-9-5 09:11:49 | 只看该作者

谢谢,我下班回去试一下下
回复

使用道具 举报

17#
发表于 2024-9-5 09:09:36 | 只看该作者
wenbieba 发表于 2024-9-4 23:34
大师你好,刚试了一下,把%SystemDrive%\Windows\WinSxS下文件夹挨着齐删除,没有按名单里边的进行删除, ...
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. cd /d "%~dp0"
  4. set "Temp=%~dp0Temp"
  5. set "WinSxSPath=%SystemDrive%\Windows\WinSxS"

  6. for /f "usebackq delims=" %%a in ("%Temp%\ReserveWinSxS.txt") do (
  7.     set "folderPattern=%%a"
  8.     if not "!folderPattern!"=="" (
  9.         for /f "delims=" %%i in ('dir /b "%WinSxSPath%" /ad ^| findstr /i "!folderPattern!"') do (
  10.             if exist "%WinSxSPath%\%%i" (
  11.                 echo Deleting: %%i
  12.                 takeown /f "%WinSxSPath%\%%i" /r /d y >nul
  13.                 icacls "%WinSxSPath%\%%i" /grant administrators:F /t >nul
  14.                 rd /s /q "%WinSxSPath%\%%i"
  15.             )
  16.         )
  17.     )
  18. )

  19. endlocal
复制代码

点评

大佬你好,刚测试闪退了  详情 回复 发表于 2024-9-5 11:51
谢谢,我下班回去试一下下  详情 回复 发表于 2024-9-5 09:11
回复

使用道具 举报

16#
 楼主| 发表于 2024-9-5 09:07:07 | 只看该作者
holley2008 发表于 2024-9-3 13:30
直接rem注释掉或删除即可

劳烦大师看看,测试了一下,文件夹里的文件夹挨着给删除,没有按照TXT内指定删除
回复

使用道具 举报

15#
 楼主| 发表于 2024-9-4 23:34:10 | 只看该作者
holley2008 发表于 2024-9-3 10:11
你的名单 怎么有的是下划线 有的是连接线???

大师你好,刚试了一下,把%SystemDrive%\Windows\WinSxS下文件夹挨着齐删除,没有按名单里边的进行删除,麻烦大佬在修改一下
回复

使用道具 举报

14#
发表于 2024-9-3 15:36:29 | 只看该作者
学习了
回复

使用道具 举报

13#
发表于 2024-9-3 13:30:06 | 只看该作者
wenbieba 发表于 2024-9-3 12:18
Processing: %%i   处理
Skipping: %%i     跳过
这个跳过能去掉吗

直接rem注释掉或删除即可

点评

劳烦大师看看,测试了一下,文件夹里的文件夹挨着给删除,没有按照TXT内指定删除  详情 回复 发表于 2024-9-5 09:07
回复

使用道具 举报

12#
 楼主| 发表于 2024-9-3 12:18:37 | 只看该作者
holley2008 发表于 2024-9-3 10:11
你的名单 怎么有的是下划线 有的是连接线???

Processing: %%i   处理
Skipping: %%i     跳过
这个跳过能去掉吗

点评

直接rem注释掉或删除即可  详情 回复 发表于 2024-9-3 13:30
回复

使用道具 举报

11#
 楼主| 发表于 2024-9-3 12:16:20 | 只看该作者
holley2008 发表于 2024-9-3 10:11
你的名单 怎么有的是下划线 有的是连接线???

刚看了,原文件明部分连接线部分下划线
回复

使用道具 举报

10#
 楼主| 发表于 2024-9-3 11:13:55 | 只看该作者
ppll2030 发表于 2024-9-3 08:33
你在cmd下,输入findstr /? ,再看看 /v 这个参数是什么意思

只打印不包含
回复

使用道具 举报

9#
 楼主| 发表于 2024-9-3 10:48:30 | 只看该作者
holley2008 发表于 2024-9-3 10:11
你的名单 怎么有的是下划线 有的是连接线???

应该是下划线,谢谢,一会改下
回复

使用道具 举报

8#
发表于 2024-9-3 10:11:53 | 只看该作者
本帖最后由 holley2008 于 2024-9-3 10:13 编辑

你的名单 怎么有的是下划线 有的是连接线???
  1. @echo off
  2. cd /d "%~dp0"
  3. set Temp=%~dp0Temp
  4. for /f "eol=: delims=" %%i in ('dir /b "%SystemDrive%\Windows\WinSxS" /ad') do (
  5.     findstr /ixc:"%%i" "%Temp%\ReserveWinSxS.txt" >nul
  6.     if errorlevel 1 (
  7.         if exist "%SystemDrive%\Windows\WinSxS\%%i" (
  8.             echo Processing: %%i
  9.             takeown /f "%SystemDrive%\Windows\WinSxS\%%i" /r /d y
  10.             icacls "%SystemDrive%\Windows\WinSxS\%%i" /grant administrators:F /t
  11.             RD /Q /S "%SystemDrive%\Windows\WinSxS\%%i"
  12.         )
  13.     ) else (
  14.         echo Skipping: %%i
  15.     )
  16. )
复制代码


点评

大师你好,刚试了一下,把%SystemDrive%\Windows\WinSxS下文件夹挨着齐删除,没有按名单里边的进行删除,麻烦大佬在修改一下  详情 回复 发表于 2024-9-4 23:34
Processing: %%i 处理 Skipping: %%i 跳过 这个跳过能去掉吗  详情 回复 发表于 2024-9-3 12:18
刚看了,原文件明部分连接线部分下划线  详情 回复 发表于 2024-9-3 12:16
应该是下划线,谢谢,一会改下  详情 回复 发表于 2024-9-3 10:48
回复

使用道具 举报

7#
 楼主| 发表于 2024-9-3 08:34:09 | 只看该作者
窄口牛 发表于 2024-9-3 08:21
你就先执行下
dir /b "%SystemDrive%\Windows\WinSxS" /ad|findstr /vxilg:"%Temp%\ReserveWinSxS.txt"

...

字体乱码,在手机上正常,换了两个电脑,均显示正常。

TXT内是想删除的项目,一项一行。结果文本内想删除的他没删除,把不需要删除的给删了
回复

使用道具 举报

6#
发表于 2024-9-3 08:34:01 | 只看该作者
精简 系统?
回复

使用道具 举报

5#
发表于 2024-9-3 08:33:59 | 只看该作者
你在cmd下,输入findstr /? ,再看看 /v 这个参数是什么意思

点评

只打印不包含  详情 回复 发表于 2024-9-3 11:13

评分

参与人数 1无忧币 +1 收起 理由
holley2008 + 1 赞一个!

查看全部评分

回复

使用道具 举报

4#
发表于 2024-9-3 08:21:28 | 只看该作者
你就先执行下
dir /b "%SystemDrive%\Windows\WinSxS" /ad|findstr /vxilg:"%Temp%\ReserveWinSxS.txt"


这句呢?


点评

字体乱码,在手机上正常,换了两个电脑,均显示正常。 TXT内是想删除的项目,一项一行。结果文本内想删除的他没删除,把不需要删除的给删了  详情 回复 发表于 2024-9-3 08:34
回复

使用道具 举报

3#
发表于 2024-9-3 08:11:16 | 只看该作者

回复

使用道具 举报

2#
 楼主| 发表于 2024-9-3 08:03:38 | 只看该作者

大佬级别,也灌水吗
回复

使用道具 举报

1#
 楼主| 发表于 2024-9-3 08:01:11 | 只看该作者
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-24 07:18

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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