指定的目录包括子目录如何将不在列表中的文件删除-批处理

来源:百度知道 编辑:UC知道 时间:2024/07/07 18:25:42
公司做了很多程序,有些老的用新的替换下来, 可是文件名都不同,初期跟本没删老程序,现在硬盘空间不足,而且里面囤积的老程越来越多,但有最新的文件列表, 请高手指点,能不能通过这个文件列表将不在表内的指定文件夹里的程序快速删除! 最好能提供批处理,不盛感激!

Fair_Jm,感谢你,昨天看了批处理教材,总是不懂扩充字符串的用法,但看到你写的"%%~nxi" ,豁然开朗。
小弟新学乍练,写了个比较繁琐的,因为之前不知道有FIND这个东西。
@echo off
dir /s /b /a:-d /o>lb.txt
setlocal enabledelayedexpansion
for /f "delims=" %%a in (d:\xxx\lb.txt) do (

set bb="%%a"

call :deal !bb!

set cc=1
for /f "delims=" %%i in (d:\xxx\oo.txt) do (

if !bb!==%%i ( set cc="0")

)

if !cc! NEQ "0" (del "%%a" )

)

:deal
set bb=%~nx1

是一个盘符 还是多个??
我这里只假设一个盘符 X:\ 文本文件与批处理在一起 为1.txt 程序后缀为exe
@echo off
for /r X:\ %%i in (*.exe) do (
find /i "%%~nxi" 1.txt >nul||del "%%i"
)
pause>nul