标题: 请教如何删除两个文件夹中的相同文件
[打印本页]
作者: lqhaudit
时间: 2010-1-4 11:53
标题: 请教如何删除两个文件夹中的相同文件
请教:有两个文件夹A和B,有相同文件。我想将A中与B中相同的文件删除。如何写个BAT命令 ?
作者: lqhaudit
时间: 2010-1-4 15:09
经过刻苦钻研^_^。终于搞定了。BAT文件内容如下(对子文件夹的文件没有试验):
REM 将本BAT放到源文件夹中,删除目标文件夹中相同的文件
FOR %%D IN (*.mp3) DO del 目标文件夹\%%D
作者: qinchun36
时间: 2010-1-4 15:15
包括子文件夹
@echo off
echo ====== 开始比较 ======
for /f "delims=" %%a in ('dir /s /b
A') do (
for /f "delims=" %%b in ('dir /s /b
B') do (
if "%%~na"=="%%~nb" (
echo 正在删除 "%%a"
del /q "%%a"
)
)
)
echo ======== 完成 ========
pause>nul
[
Last edited by qinchun36 on 2010-1-4 at 15:26 ]
作者: lqhaudit
时间: 2010-1-5 14:01
谢谢。真是高手啊。
虽然还看不懂。原来可以多个DO 命令套嵌。del /q "%%a" 不加路径吗?"A\%%a"
作者: HAT
时间: 2010-1-5 20:54
标题: Re 4楼
不需要。因为dir /s会得到文件的完整路径。
作者: Rstv
时间: 2010-1-12 07:53
Quote: |
Originally posted by HAT at 2010-1-5 20:54:
不需要。因为dir /s会得到文件的完整路径。 |
|
是
/b
且回3楼:
依LZ原意,第2个 for 改成如下可提高效率
for /R
B %%b in (%%~na) do ...
。。。
[
Last edited by Rstv on 2010-1-12 at 08:11 ]
作者: HAT
时间: 2010-1-12 09:50
标题: Re 6楼
Are you joking?
/B Uses bare format (no heading information or summary).
/S Displays files in specified directory and all subdirectories.
作者: Rstv
时间: 2010-1-12 11:31
标题: 稍安勿燥self
先假定没有子目录, 所以也没有 /S (为方便举例暂不虑
要取得可利用的文件列表:
C:\>
dir
驱动器 C 中的卷没有标签。
卷的序列号是 Acde-7376
C:\ 的目录
yyyy-mm-dd hh:mm <DIR>
你要的东西在这儿呢
yyyy-mm-dd hh:mm 123
前前后后,左左(无右右)
yyyy-mm-dd hh:mm 456
还有那么多无用信息
yyyy-mm-dd hh:mm 789
怎么处理呀??
3 个文件 1,368 字节
1 个目录 221,220,864 可用字节
所以,起作用的还是 /B。
当然,要对目录树操作,当然还要有 /S 了
再重申一下,/S 只是树操作,/B 才是实质关键,无可争辩,毫无质疑。
也所以,我自己一仓促只写了一半,应该是 /b /s 缺一不可
~~看来确实是 3*0.5 >1 啊...
作者: HAT
时间: 2010-1-12 16:37
既然
/b /s 缺一不可,那么
/B 才是实质关键,无可争辩,毫无质疑的结论是如何得出的呢?
作者: Rstv
时间: 2010-1-12 19:28
逻辑的最高境界是——
糊涂