当前位置: 代码迷 >> VBA >> 求BAT语句,两个文件夹,要求删除一个文件夹与另一个文件夹上同名文件的文件
  详细解决方案

求BAT语句,两个文件夹,要求删除一个文件夹与另一个文件夹上同名文件的文件

热度:9498   发布时间:2013-02-26 00:00:00.0
求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 
  相关解决方案