[ Last edited by HAT on 2008-10-25 at 18:26 ]作者: hjxk 时间: 2008-10-16 01:36 自己顶一下作者: everest79 时间: 2008-10-20 04:43 for /f "delims=" %%i in ('dir /ad /b /s') do (
if defined "%~nxi" (
echo %%"%~nxi"%% ==== %~i >>list.txt
) else (
set ""%~nxi"=%~i"
)
)作者: liumangshiwo 时间: 2008-10-21 14:05 顶一下作者: hjxk 时间: 2008-10-21 23:49 实在太菜了,看不明白,可以解释下怎样使用吗?作者: everest79 时间: 2008-10-22 06:21 例如你两个硬盘在当前系统下分别为E与F盘,那么你就可以这样
for /f "delims=" %%i in ('dir /ad /b /s E:;F:') do (
if defined "%~nxi" (
echo %%"%~nxi"%% ==== %~i >>list.txt
) else (
set ""%~nxi"=%~i"
)
)
最后在批处理所在目录生成的list.txt里应就是重复目录了,不过我没测试作者: slw218856 时间: 2008-10-25 16:52 楼上的这局我不懂,能否解疑,先谢谢。
if defined "%~nxi" (
echo %%"%~nxi"%% ==== %~i作者: everest79 时间: 2008-10-26 01:31 if defined var 判断是否存在变量var
因为目录名称的非规范特点,这个变量名称使用了引号来闭合,所以出现了
if defined "%~nxi"
随后是这个变量若存在,说明有重复的,那么将这个重复文件夹路径输出到list.txt
要是不存在则设置这个变量
set ""%~nxi"=%~i"