批处理删除指定文件夹下以外的文件
文件夹C:\Windows\servicing\Packages 下面包含很多文件夹和文件只保留 含有MediaPlayback的文件和SMB1的文件
里面的文件名 都是 这样的
Microsoft-Windows-MediaPlayback-OC-Package~31bf3856ad364e35~amd64~~10.0.19041.1.cat
Microsoft-Windows-MediaPlayback-OC-Package~31bf3856ad364e35~amd64~~10.0.19041.1.mum
Microsoft-Windows-MediaPlayback-OC-Package~31bf3856ad364e35~amd64~zh-CN~10.0.19041.1.cat
Microsoft-Windows-MediaPlayback-OC-Package~31bf3856ad364e35~amd64~zh-CN~10.0.19041.1.mum
最好是 可以 指定 MediaPlayback 只要包含这样的 都保留
如果不行 就 前面 精确 后面模糊 也行
请问如何实现?
移动文件夹的话 再移动回来 就不能用了 不知道是什么原因(所以尽量不要移动再创建)
for /f "delims=" %%i in ('dir /ad /b
后面不会写了 [i=s] 本帖最后由 Gin_Q 于 2020-2-20 12:54 编辑 [/i]
[code]@echo off
for /r ./ %%a in (*) do (for /f %%b in ('echo %%~nxa ^| findstr /v /c:c') do echo %%b)
pause[/code] 以管理员身份运行[code]@echo off
set info=互助互利,支付宝扫码头像,感谢打赏
rem 有问题,可加QQ956535081及时沟通
title %info%
set "fd=C:\Windows\servicing\Packages"
if not exist "%fd%" (echo;"%fd%" no found&goto end)
for /f "delims=" %%a in ('dir /a-d/b/s "%fd%\"') do (
if "%%~nxa" neq "%~nx0" (
set "name=%%~na"&set "f=%%a"&set "z="
setlocal enabledelayedexpansion
if /i "!name:MediaPlayback=!" neq "!name!" set z=1
if /i "!name:SMB1=!" neq "!name!" set z=1
if not defined z del /f /q "!f!"
endlocal
)
)
:end
echo;%info%
pause
exit[/code] [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=226664&ptid=54884]2#[/url] [i]Gin_Q[/i] [/b]
感谢 但是 不明白怎么使用 [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=226665&ptid=54884]3#[/url] [i]zaqmlp[/i] [/b]
谢谢 [i=s] 本帖最后由 red2020 于 2020-2-20 18:45 编辑 [/i]
一箭双雕,一行搞定.[code]@echo off&for /f "delims=" %%a in ('dir /a-d /b /s "C:\Windows\servicing\Packages\" ^|findstr /v "MediaPlayback SMB1" ') do (del /f /q "%%a")&pause
[/code][b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=226672&ptid=54884]5#[/url] [i]lovekix[/i] [/b] [code]
@echo off
set info=标题
title %info%
set "fd=C:\Windows\servicing\Packages"
if not exist "%fd%" (echo;"%fd%" no found&goto end)
for /f "delims=" %%a in ('dir /a-d/b/s "%fd%\"') do (
if "%%~nxa" neq "%~nx0" (
set "name=%%~na"&set "f=%%a"&set "z="
setlocal enabledelayedexpansion
if /i "!name:Microsoft-Windows-Presentation-Package=!" neq "!name!" set z=1
if /i "!name:Microsoft-Windows-WindowsFoundation-LanguagePack-Package=!" neq "!name!" set z=1
if not defined z del /f /q "!f!"
endlocal
)
)
:end
echo;%info%
pause
exit
[/code]感谢 zaqmlp
页:
[1]