本帖最后由 zfkzp 于 2011-7-21 21:45 编辑
名称:文件清空(零)工具
用途:用于清空一些(重要)文件,使之还原过来是0K(也就是空文件),达到类似于“清空”的目的。但是需要说明的是,这个工具不是粉碎文件用的,是清空(零)用的。所以,请大家不要混淆。
原理:
相对专业的说法
微软windows系统的dos环境下,有一个文本内容写入的功能,而一般情况下,是用">"来直接覆盖文件内容,或者创建一个新文件并且把内容写入与新文件里;用“>>”来追加新的内容。而微软却给我们一个新思路,利用">"的功能,使其生成的占位符,覆盖源文件的内容,而达到清空文件的效果。
相对于通俗易懂的说法
现在,动手的时候到了,先自己制作一个体积比较大的文件,或者找一个没用的电影文件。请各位点击“开始菜单”-点击“运行”,在运行框里面填入“cmd”点击“确定”,在弹出的黑漆漆的框框里面填入“break >"你找好的文件的名字和路径"”。敲回车,不要太用力,否则敲坏了我可赔不起。再打开看看你刚才那个文件的属性体积,多少?大声点!“0kB!”是零KB呀!没错,这句就是本工具的核心代码了。不懂什么是“开始菜单”的去百度去吧,上面有非常详细的介绍,别在下面瞎叫!
制作原因:原因很简单,为方便自己的需要,也是分享一下自己的笨拙之见。
优点
无需windows系统的特殊权限,一个普通权限的用户就可以使用,只要被处理的文件在权限范围之内。方便简单,无需因为找一款好的文件删除工具,工具自带删除功能(虽然觉得有点多余)。
缺点
在处理目录的时候没办法解锁。没办法判断系统进程。对于没有权限的文件局限性很大。对文件多的目录处理时在解除属性的时候很费时间。而且还可能存在一些Bug。
以上所说的优点缺点,是本人对此工具的拙见,欢迎各位给在下指正错误。
特别说明:如果有时间的话,我会对其进行改进的。感谢批处理之家!本工具的版权归批处理之家,只有论坛里面的朋友可以拿去修改,改进。但是:期间因为操作不慎所造成的文件丢失,数据损毁等事故,与本人没有半毫厘的关系。
批处理之家-zfkzp 下面是代码- @echo off
- color a &cls &title 文件清空处理工具 BY:批处理之家-zfkzp 工具很危险,操作需谨慎!
- :start1
- echo 本操作很危险,请谨慎操作!否则出现的任何后果,本人不负任何责任!
- ping localhost >nul & cls
- @echo Warning(提醒!)
- @echo 1、请勿什么都不填写直接按回车,否则后果很严重!非专业人士请不要随便填写系统路径,如:X:\windows\、X:\prgramfiles\。
- @echo 2、目前不支持系统常量作为路径处理,举例%temp%应该改为C:\DOCUME~1\username\LOCALS~1\Temp或者更完整的路径。
- @echo 3、如果有文件名是cmd.exe之类的系统文件的请自行重命名。
- @echo 无视以上提醒而操作,而导致的数据损坏的,跟本人无关。
- @echo 请输入需要处理的文件(夹):
- set/p a=
- dir "%a%" /a:d
- if %errorlevel% == 0 (cls & goto folder) else (cls & goto file)
- echo ERROR.&pause
- if not exist "%a%" (echo Windows找不到%a%,请确认文件路径是否!) else (echo Windows找到%a%!)
- pause
- goto start1
-
- :file
- 正在处理:%a% & ping loaclhost >nul
- attrib -s -r -h -a "%a%" & cacls "%a%" /t /e /c /g %username%:f
- for %%i in ("%a%") do taskkill /f /im %%~nxi
- break >"%a%"
- del /s /q /f /a "%a%"
- ::这里是解锁文件,以及清空文件。注意,可以被解锁的只有可执行文件(如:*.exe、*.bat *.cmd *.com)罢了,其他的就暂时没办法。
- echo 下面我们将打开目标文件所在路径。
- for %%i in ("%a%") do start explorer "%%~dpi"
- ping localhost >nul
- exit /b
-
- :folder
- echo 正在处理:%a%
- echo Warning! 文件夹的内容太多的时候到这里会出现类似卡住的现象,实际上是在工作的,请不要关闭。
- echo pushd ^%a^%
- for /f "delims=" %%i in ('dir /b /a-d /s "%a%\*.*"') do attrib -s -r -h -a "%%i"
- cacls %a% /t /e /c /g %username%:f & attrib -s -r -h -a %a%
- for /f "delims=" %%i in ('dir /b /a-d /s "%a%\*.*"') do (for %%i in ("%%i") do taskkill /f /im %%~nxi)
- for /f "delims=" %%i in ('dir /b /a-d /s "%a%\*.*"') do break > %%i
- if %errorlevel% equ 0 (cls & @echo 处理完成) else (cls & @echo 处理未完成) &ping loaclhost >nul
- for /f "delims=" %%i in ('dir /b /a-d /s "%a%\*.*"') do rename "%%i" %RANDOM%%RANDOM%%RANDOM%.%RANDOM% & cls
- rd /s /q "%a%"
- del /s /q /f /a "%a%"\*.*
- cls
- echo 下面我们将打开目标文件夹。
- for %%i in ("%a%") do start explorer "%%~dpi"
- ping localhost >nul
- exit /b
复制代码
|