求BAT语句,两个文件夹,要求删除一个文件夹与另一个文件夹下同名文件的文件。
本帖最后由 xt030 于 2012-10-30 20:55:00 编辑 例如:A文件夹 a.txt,b.txt,c.txt
B文件夹 c.txt,d.txt
要求对A文件夹进行,删除A、B文件夹同时存在的文件的操作
求BAT语句?
[最优解释]
不会编程,如果文件数量比较多的时候,用以下方法可以。
在cmd命令行下建立2个CSV文件
dir c:\a /b >>a.csv
dir c:\b /b >>b.csv
然后分别用EXCEL打开两个文件。然后用VLOOKUP函数找出两个共有的文件名。
后面两列分别写公式="del c:\a" & 文件名单元格,="del c:\b" & 文件名单元格。然后下拉。
分别将两列粘到2个文本文件中,扩展名为.bat。运行就删除了。
[其他解释]
::
:: +-----------------------------------------------+ ::
::BAT不能放置在目录A及其子文件夹里面
setlocal enabledelayedexpansion
::在这里设置A、B文件夹路径
::假设A为“D:\123 456”
::假设B为“E:\15641 dsfsd”
set "a=D:\123 456"
set "b=E:\15641 dsfsd"
::比对文件
for /f "delims=" %%a in ('dir /s/b/a-d "!a!"') do (
set "wkd=%%a"
set "wkd=!wkd:%a%=!"
if not exist "!b!\!wkd!" echo.删除%%a &del /a/f/q %%~sa
)
::比对目录
for /f "delims=" %%a in ('dir /s/b/ad "!a!"') do (
set "wkd=%%a"
set "wkd=!wkd:%a%=!"
if not exist "!b!\!wkd!" echo.删除%%a &rd /s/q %%~sa
)
set /p=处理完毕,<nul&pause
[其他解释]
自己找到答案了
@Echo off
:: +-----------------------------------------------+ ::
::
[其他解释]
BAT-GO团员【wkdxz】 At:2010-07-23 11:25:03