无忧启动论坛

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

删除文本陈列内容

[复制链接]
跳转到指定楼层
1#
发表于 2023-7-19 21:53:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

把所需要删除文件或文件夹名关键字符一行一写,写入txt格式文本,
如:
amd64_microsoft.vc80.crt_
amd64_microsoft.windows.common-controls_
。。。。
进行模糊删除

用如下命令执行,批处理走完了,也没报错,但WinSxS-List.txt文本里边指定的内容没删掉
set "WinSxS-List=%Lists%\WinSxS-List.txt"
for /F %%I in (' Type "%Lists%\WinSxS-List.txt" 2^>nul') do (
        for /F "tokens=2 delims=: " %%a in ('dir /b /a:d %SystemDrive%\Windows\WinSxS ^| Findstr /I /C:"PackageName : %%I"') do (
         echo %%I
        
        RMDIR /S /Q "%%~I "
    ))
麻烦大师指点错误
2#
发表于 2023-7-19 22:13:32 | 只看该作者
没太看懂你的逻辑,最后删除时为什么不用 RD /S /Q "%%~a" 而是 %%~i? 而且引号里的空格也是多余的吧
回复

使用道具 举报

3#
 楼主| 发表于 2023-7-19 22:21:29 | 只看该作者
china.gaofeng 发表于 2023-7-19 22:13
没太看懂你的逻辑,最后删除时为什么不用 RD /S /Q "%%~a" 而是 %%~i? 而且引号里的空格也是多余的吧

帮看看
for /F %%a in (' Type "%Lists%\WinSxS-List.txt" 2^>nul') do (
        for /F "tokens=2 delims=: " %%a in ('DIR /a:d /b /o:n /s %SystemDrive%\Windows\WinSxS\ ^| FINDSTR /i /g:%Lists%\WinSxS-List.txt 2^>nul')  do (
         echo %%a
        
        RD /S /Q %%~a
    ))
回复

使用道具 举报

4#
 楼主| 发表于 2023-7-19 22:24:43 | 只看该作者
china.gaofeng 发表于 2023-7-19 22:13
没太看懂你的逻辑,最后删除时为什么不用 RD /S /Q "%%~a" 而是 %%~i? 而且引号里的空格也是多余的吧

改为'DIR /a:d /b /o:n /s %SystemDrive%\Windows\WinSxS\ ^| FINDSTR /i /g:%Lists%\WinSxS-List.txt
报找不到路径


I:\☆★MSMGToolkit★☆\Toolkit>(
echo \Windows\WinSxS\Fusion\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_none_ea33c8f0b247cd77\9.0\9.0.30729.6161
RD /S /Q \Windows\WinSxS\Fusion\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_none_ea33c8f0b247cd77\9.0\9.0.30729.6161
)
\Windows\WinSxS\Fusion\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_none_ea33c8f0b247cd77\9.0\9.0.30729.6161
系统找不到指定的路径。
回复

使用道具 举报

5#
发表于 2023-7-19 22:25:09 | 只看该作者
这个不错啊
回复

使用道具 举报

6#
发表于 2023-7-19 22:26:46 | 只看该作者

set "WinSxS-List=%Lists%\WinSxS-List.txt"
for /F %%I in (' Type "%Lists%\WinSxS-List.txt" 2^>nul') do (
        for /F "tokens=2 delims=: " %%a in ('dir /b /a:d %SystemDrive%\Windows\WinSxS\ ^| Findstr /I /C:"PackageName : %%I"') do (
         echo %%I
        
        if exist "%systemroot%\winsxs\%%~I\" (RD /S /Q "%systemroot%\winsxs\%%~I ") else (del /q "%systemroot%\winsxs\%%~I")
    ))
回复

使用道具 举报

7#
发表于 2023-7-19 22:29:28 | 只看该作者
试试这样
  1. for /F %%i in ('Type "%Lists%\WinSxS-List.txt" 2^>nul') do (
  2.     for %%a in ('DIR /a:d /b /o:n /s %SystemDrive%\Windows\WinSxS\ ^| FINDSTR /i /c:"%%i" 2^>nul')  do (
  3.         echo %%a
  4.         RD /S /Q "%%~a"
  5. ))
复制代码


回复

使用道具 举报

8#
 楼主| 发表于 2023-7-19 22:35:06 | 只看该作者

不行,这个是挨着全删,没有按照文档内容进行
回复

使用道具 举报

9#
发表于 2023-7-19 22:37:13 | 只看该作者
wenbieba 发表于 2023-7-19 22:35
不行,这个是挨着全删,没有按照文档内容进行

挨着全删是啥意思?
回复

使用道具 举报

10#
 楼主| 发表于 2023-7-19 22:40:20 | 只看该作者
conlin888 发表于 2023-7-19 22:26
set "WinSxS-List=%Lists%\WinSxS-List.txt"
for /F %%I in (' Type "%Lists%\WinSxS-List.txt" 2^>nul' ...

这个也是批出里挨着走完,也没报错,也没删除
回复

使用道具 举报

11#
 楼主| 发表于 2023-7-19 22:46:18 | 只看该作者
china.gaofeng 发表于 2023-7-19 22:37
挨着全删是啥意思?

%SystemDrive%\Windows\WinSxS\   文件夹下所有文件夹逐个挨着删除,没有直接对文本里的指定模糊名进行
回复

使用道具 举报

12#
发表于 2023-7-19 22:55:09 | 只看该作者
你这个看不懂。举例挨个删除不用这么麻烦吧。。

我这个简单,你试试我这个。

@echo off


for /f %%a in ('dir /b /a:d "%SystemDrive%\Windows\WinSxS" ^| findstr/i /g:"具体路径\WinSxS-List.txt"') DO (
        echo %%a
        rmdir /s /q "%SystemDrive%\Windows\WinSxS\%%a"
        pause
        )

回复

使用道具 举报

13#
发表于 2023-7-19 23:01:13 | 只看该作者
wenbieba 发表于 2023-7-19 22:40
这个也是批出里挨着走完,也没报错,也没删除


set "WinSxS-List=%Lists%\WinSxS-List.txt"
for /F %%I in (' Type "%Lists%\WinSxS-List.txt" 2^>nul') do (
        for /F "delims=" %%a in ('dir /b /a %SystemDrive%\Windows\WinSxS\ ^| Find /i "%%I"') do (
         echo %%I
        
        if exist "%systemroot%\winsxs\%%~a\" (RD /S /Q "%systemroot%\winsxs\%%~a") else (del /q "%systemroot%\winsxs\%%~a")
    ))
回复

使用道具 举报

14#
 楼主| 发表于 2023-7-19 23:04:25 | 只看该作者
ppll2030 发表于 2023-7-19 22:55
你这个看不懂。举例挨个删除不用这么麻烦吧。。

我这个简单,你试试我这个。

这种发帖前就实验过,不行
回复

使用道具 举报

15#
发表于 2023-7-19 23:07:41 | 只看该作者
wenbieba 发表于 2023-7-19 23:04
这种发帖前就实验过,不行

不行吗?我刚刚试了一下是好使的啊然后才发出来的
回复

使用道具 举报

16#
发表于 2023-7-19 23:16:53 | 只看该作者
抱歉,第二层FOR循环少写了/F

你加上试试
回复

使用道具 举报

17#
发表于 2023-7-19 23:39:21 | 只看该作者
学习一下
回复

使用道具 举报

18#
发表于 2023-7-19 23:51:17 | 只看该作者
wenbieba 发表于 2023-7-19 23:04
这种发帖前就实验过,不行

你看啊,我这里是好使的啊

回复

使用道具 举报

19#
发表于 2023-7-20 05:47:57 | 只看该作者
用正则
然后用wimlib处理wim镜像
回复

使用道具 举报

20#
发表于 2023-7-20 06:31:54 来自手机 | 只看该作者
要删txt里的内容而不是文件和文件夹
回复

使用道具 举报

21#
发表于 2023-7-20 09:17:05 | 只看该作者
学习一下,谢谢分享!
回复

使用道具 举报

22#
发表于 2023-7-20 09:24:16 | 只看该作者
一起学习一下
回复

使用道具 举报

23#
发表于 2023-7-20 09:47:35 | 只看该作者
留意一下看看大家哪个方法好
回复

使用道具 举报

24#
发表于 2023-7-20 10:33:31 | 只看该作者
你看看这个行不行:@echo off
setlocal enabledelayedexpansion
pushd %~dp0
if exist Deleted.txt del Deleted.txt
if exist Notfound.txt del Notfound.txt
for /f %%i in (WinSxS-List.txt) do call :del %%i
findstr /I /V /G:Deleted.txt WinSxS-List.txt>Notfound.txt
pause
exit

:del
for /D %%i in (*%1*) do (
  echo %%i>>Deleted.txt
  rd %%i /Q /S
)
goto :eof
pause

其中 WinSxS-List.txt是你的列表,Deleted.txt是被删除的列表,Notfound.txt是没找到文件夹的列表.
回复

使用道具 举报

25#
发表于 2023-7-20 10:37:51 | 只看该作者
自己是新手什么都不会,大家有什么指教?
回复

使用道具 举报

26#
 楼主| 发表于 2023-7-20 11:19:28 | 只看该作者
ppll2030 发表于 2023-7-19 23:51
你看啊,我这里是好使的啊

谢谢,辛苦了
回复

使用道具 举报

27#
 楼主| 发表于 2023-7-20 11:21:05 | 只看该作者
conlin888 发表于 2023-7-19 23:01
set "WinSxS-List=%Lists%\WinSxS-List.txt"
for /F %%I in (' Type "%Lists%\WinSxS-List.txt" 2^>nu ...

谢谢,我晚上回去再弄
回复

使用道具 举报

28#
 楼主| 发表于 2023-7-20 11:22:15 | 只看该作者
china.gaofeng 发表于 2023-7-19 23:16
抱歉,第二层FOR循环少写了/F

你加上试试

谢谢,我晚上回去再弄
回复

使用道具 举报

29#
发表于 2023-7-20 11:25:52 | 只看该作者
进来学习。
回复

使用道具 举报

30#
发表于 2023-7-20 12:36:41 | 只看该作者
链接: https://pan.baidu.com/s/1jpz1zYgPGfq_jhxx2VT4Uw?pwd=eytr 提取码: eytr 复制这段内容后打开百度网盘手机App,操作更方便哦
快速抄袭wim_WinSxS列表.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-8-6 11:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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