无忧启动论坛

标题: 名单内删除不了,删除了非名单内的 [打印本页]

作者: wenbieba    时间: 2024-9-2 22:22
标题: 名单内删除不了,删除了非名单内的
本帖最后由 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-
…………



作者: wenbieba    时间: 2024-9-3 08:01
窄口牛 发表于 2024-9-3 07:36

什么意思
作者: wenbieba    时间: 2024-9-3 08:03
窄口牛 发表于 2024-9-3 07:36

大佬级别,也灌水吗
作者: 窄口牛    时间: 2024-9-3 08:11


作者: 窄口牛    时间: 2024-9-3 08:21
你就先执行下
dir /b "%SystemDrive%\Windows\WinSxS" /ad|findstr /vxilg:"%Temp%\ReserveWinSxS.txt"


这句呢?



作者: ppll2030    时间: 2024-9-3 08:33
你在cmd下,输入findstr /? ,再看看 /v 这个参数是什么意思
作者: tanglf    时间: 2024-9-3 08:34
精简 系统?
作者: wenbieba    时间: 2024-9-3 08:34
窄口牛 发表于 2024-9-3 08:21
你就先执行下
dir /b "%SystemDrive%\Windows\WinSxS" /ad|findstr /vxilg:"%Temp%\ReserveWinSxS.txt"

...

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

TXT内是想删除的项目,一项一行。结果文本内想删除的他没删除,把不需要删除的给删了
作者: holley2008    时间: 2024-9-3 10:11
本帖最后由 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. )
复制代码



作者: wenbieba    时间: 2024-9-3 10:48
holley2008 发表于 2024-9-3 10:11
你的名单 怎么有的是下划线 有的是连接线???

应该是下划线,谢谢,一会改下
作者: wenbieba    时间: 2024-9-3 11:13
ppll2030 发表于 2024-9-3 08:33
你在cmd下,输入findstr /? ,再看看 /v 这个参数是什么意思

只打印不包含
作者: wenbieba    时间: 2024-9-3 12:16
holley2008 发表于 2024-9-3 10:11
你的名单 怎么有的是下划线 有的是连接线???

刚看了,原文件明部分连接线部分下划线
作者: wenbieba    时间: 2024-9-3 12:18
holley2008 发表于 2024-9-3 10:11
你的名单 怎么有的是下划线 有的是连接线???

Processing: %%i   处理
Skipping: %%i     跳过
这个跳过能去掉吗
作者: holley2008    时间: 2024-9-3 13:30
wenbieba 发表于 2024-9-3 12:18
Processing: %%i   处理
Skipping: %%i     跳过
这个跳过能去掉吗

直接rem注释掉或删除即可
作者: yzqmxh    时间: 2024-9-3 15:36
学习了
作者: wenbieba    时间: 2024-9-4 23:34
holley2008 发表于 2024-9-3 10:11
你的名单 怎么有的是下划线 有的是连接线???

大师你好,刚试了一下,把%SystemDrive%\Windows\WinSxS下文件夹挨着齐删除,没有按名单里边的进行删除,麻烦大佬在修改一下
作者: wenbieba    时间: 2024-9-5 09:07
holley2008 发表于 2024-9-3 13:30
直接rem注释掉或删除即可

劳烦大师看看,测试了一下,文件夹里的文件夹挨着给删除,没有按照TXT内指定删除
作者: holley2008    时间: 2024-9-5 09:09
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
复制代码

作者: wenbieba    时间: 2024-9-5 09:11
holley2008 发表于 2024-9-5 09:09

谢谢,我下班回去试一下下
作者: martin313    时间: 2024-9-5 09:17
这是在折腾 WinSxS 的精简么
作者: louther    时间: 2024-9-5 09:19
看不懂,学习下
作者: mlgq    时间: 2024-9-5 09:22
1
作者: wenbieba    时间: 2024-9-5 09:25
martin313 发表于 2024-9-5 09:17
这是在折腾 WinSxS 的精简么

是的,轻微精简一下
作者: szwp    时间: 2024-9-5 09:31
名单里只放一个文件练习
作者: martin313    时间: 2024-9-5 09:38
wenbieba 发表于 2024-9-5 09:25
是的,轻微精简一下

如果是PE的话,那可以精简的狠一些,可参照骨头PE的精简法
作者: wenbieba    时间: 2024-9-5 11:51
holley2008 发表于 2024-9-5 09:09

大佬你好,刚测试闪退了
作者: holley2008    时间: 2024-9-5 14:47
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
复制代码

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

谢谢,我测试一下,辛苦大佬了
作者: wenbieba    时间: 2024-9-5 22:21
holley2008 发表于 2024-9-5 14:47
改了下,换成当前目录了,输出log日志
我win7下测试正常

谢谢大佬,已成功




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3