Board logo

标题: [原创]自动搜索并删除畸形文件夹 [打印本页]

作者: q1x2x3     时间: 2010-1-22 14:42    标题: [原创]自动搜索并删除畸形文件夹
set alldrive=a b c d e f g h i j k l m n o p q r s t u v w x y z
for %%i in (%alldrive%) do if exist %%i:\ dir /ad /s /b %%i:\|(findstr /e "\.") >>1.txt
set /p var=<1.txt
echo rd /s /q \\?\^"%var%^">1001.bat
echo del 1.txt>>1001.bat
echo del 1001.bat>>1001.bat
这个批处理是自己写的,仅供大家参考学习,这个批处理有个缺点就是一次只能删除一个畸形文件夹,以后有机会的话做完善点,现在只能找以.结尾的畸形文件夹
至于。。畸形文件夹,大家可以去百度找资料,只要以.为后缀的文件夹都可以删除
谨慎使用,rd /s /q \\?\这句命令很可能删除你本来不想删除的文件,所以。。。

作者: q8249014     时间: 2010-1-22 19:15
一般我们所认为的畸形文件夹为:md test..\\

删除方法为:rd /s /q test..\\

你的代码好像有问题

作者: tongzj     时间: 2010-1-24 08:20
下面是我以前做的删除带点目录脚本,利用 8.3 格式名,生成一个command.bat,删除前可以先看到要删除的目录,避免误删。

@echo off
setlocal enabledelayedexpansion
echo :: 请确认可以删除以下文件后再执行command.bat>command.bat
echo :: 不需要删除的目录请务必删除本文件中的条目>>command.bat
echo :: 如果下面为空表明未找到带点目录>>command.bat
echo ::===========================================>>command.bat
:input
set /p dir=请输入绝对目录名:
if "%dir%"=="" goto input
if not exist %dir% goto input
echo 正在查找 %dir%下带.目录
for /f %%a in ('dir /ad /s /b "%dir%" ^|findstr /e /c:"."') do (call :start %%a)
start notepad command.bat
goto :eof

:start
set PA=%1
set num=0
:loop1
set FN1=!PA:~%num%!
echo %FN1% |find "\">nul
if !errorlevel!==0 (
set /a num+=1
goto loop1
) else (
set PN=!PA:~0,%num%!
set FN=%FN1%
goto loopout
)
:loopout
call :countlenth %PA%
set PAL=%lenth%
call :countlenth %PN%
set PNL=%lenth%
call :countlenth %FN%
set FNL=%lenth%

for /f "tokens=4,5" %%y in ('dir /ad /x %PN%^|findstr /i /e /c:" %FN%"') do (
findstr /i /b /e /c:"rd /s /q %PN%%%y" command.bat>nul
if not !errorlevel!==0 (
>>command.bat echo :: 删除目录 %PN%%%z
>>command.bat echo rd /s /q %PN%%%y
)
)
goto :eof

:countlenth
set str=%1
set num=0
set lenth=0
:loop
if "!str:~%num%,1!"=="" (
set lenth=%num%
goto :eof
)
set /a num=1+%num%
goto loop