您的位置 首页 > 数码极客

【批处理删除文件夹】从一个清理系统垃圾的小文件入门DOS和批处理

我先简单说一下什么是DOS和部署。

DOS是磁盘操作系统。在DOS世界中,没有图标或窗口,因此不需要鼠标。与计算机的交互是通过鼠标输入命令字符完成的。

在现代windows流行的时代,doS是不是就一无是处了呢?当然不是,DOS可以作为一种不错的工具存在,特别是不能登录到Windows系统时,因为其完成系统的安装门槛较低,可以不需要硬盘(Windows系统因体积较大,所以需要安装到硬盘,当然PE系统也可以直接由光盘或U盘启动)。其对系统的管理,对磁盘的操作,对网络的管理都具有Windows所不具有的一些优势。

批处理简单理解就是将单个的DOS命令串起来,放到一个文件中,批量执行DOS命令。当然,类似于程序设计语言,也可以应用变量、条件选择、循环等,所以在一些特定的场合,功能也十分强大。

下面以网上流行的“清理系统垃圾文件代码”,新建一个批处理文件,来清理系统垃圾,来看一下DOS命令和批处理的梗概。

1 建立“清理系统垃圾”的批处理文件;

1.1 新建文本文档,复制粘贴以下内容:

@echo off

echo 正在清理系统垃圾文件,请稍等......

del /f /s /q %systemdrive%\*.tmp

del /f /s /q %systemdrive%\*._mp

del /f /s /q %systemdrive%\*.log

del /f /s /q %systemdrive%\*.gid

del /f /s /q %systemdrive%\*.chk

del /f /s /q %systemdrive%\*.old

del /f /s /q %systemdrive%\recycled\*.*

del /f /s /q %windir%\*.bak

del /f /s /q %windir%\prefetch\*.*

rd /s /q %windir%\temp & md %windir%\temp

del /f /q %userprofile%\cookies\*.*

del /f /q %userprofile%\recent\*.*

del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"

del /f /s /q "%userprofile%\Local Settings\Temp\*.*"

del /f /s /q "%userprofile%\recent\*.*"

echo 清理系统垃圾完成!

echo. & pause

1.2 文件另存为“清理系统垃圾.bat”,如下对话框:

点击“保存”后,即可看到下面如下图标,双击即可运行,开始清理垃圾。

上面说过,批处理bat文件就是一串串DOS命令,上面的DOS命令其实就只有3个:

  • @:隐藏命令行本身的回显;

  • echo:允许或禁止批处理文件在执行的过程中回显命令;

  • del:删除文件;

前两个命令相对简单,常用在批处理中,后面的del命令因为可以通过参数控制所以显得相对复杂一点,可以打开“命令提示符”(cmd.exe)通过命令"del /?"查看。(注意上面的单行在"命令提示符"窗口也是可以执行的。)

2 应用变量、条件选择和循环的批处理(批处理重命名)

setlocal enabledelayedexpansion

set n=0

set /p name=请输入更改后的文件前缀字母部分,如输入pic,会形成如“”的名字,如不需要则直接回车:

for /f "tokens=1,2 usebackq delims=." %%A in (`dir /o:n /b`) do (

if not "%%~nA"=="%~n0" ( rem 不更改bat文件的名称;

if not "%%B"=="html" ( rem 不更改html文件的名称;

if not "%%A.%%B"=="%%A." ( rem 不更改文件夹的名称;

set /a n=n+1

if !n! lss 10 (

ren "%%A.%%B" "!name!0!n!.%%B"

) else (

ren "%%A.%%B" "!name!!n!.%%B"

)))))

3 批处理修改注册表

@echo off

echo Windows Registry Editor Version 5.00 >

echo 正在设置自动登录当前系统的帐户...

echo [hkey_local_machin\software\microsoft\windows nt\currentversion\winlogon] >>

echo "autoadminlogon"="1" >>

echo "defaultusername"="normalaccount" >>

echo "defaultpassword"="noprivilege" >>

echo.

echo 成功将"normalaccount"帐户设置为当前自动登录的帐户!

regedit /s

del /q /f >nul

其思路是用批处理新建一个临时文档,利用此文档修改注册表实现自动登录宽带帐户。

4 批处理自动建立目录网页

echo ^<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ";^> >a.html

echo ^<html xmlns=";^> >>a.html

echo ^<base target="_blank" /^> >>a.html

echo ^<head^> >>a.html

echo ^<title^>contents^</title^> >>a.html

echo ^<style type=text/css^> >>a.html

echo div{width^:74.125^%%;} >>a.html

echo div{margin^:auto;} >>a.html

echo div{margin^:auto;} >>a.html

echo li{width^:33^%%;} >>a.html

echo li{float^:left;} >>a.html

echo li{height^:32px;} >>a.html

echo li{line-height^:32px;} >>a.html

echo li{overflow^:hidden;} >>a.html

echo li{white-space^:nowrap;} >>a.html

echo li{text-overflow^:ellipsis;} >>a.html

echo img{border^:0 red solid;} >>a.html

echo a:link{text-decoration: none; color:#000;} >>a.html

echo ^</style^>^</head^> >>a.html

echo ^<body^>^<div^> >>a.html

for /f "tokens=1,2 usebackq delims=." %%a in (`dir /o:n /b`) do (

if not "%%a.%%b"=="%%a." (

if not "%%a.%%b"=="a.html" (

echo ^<li^>^<a href="%%a.%%b"^>%%a.%%b^</a^>^</li^> >>a.html

)

)

)

for /f "tokens=1,2 usebackq delims=." %%a in (`dir /o:n /b`) do (

if "%%a.%%b"=="%%a." (

echo ^<li^>^<a href="%%a;^>%%a^</a^>^</li^> >>a.html

)

)

echo ^</div^> >>a.html

echo ^</body^> >>a.html

echo ^</html^> >>a.html

通过以上一些批处理的实例可见,一些简单的DOS命令通过条件选择和循环的组合,也可以完成一些复杂的任务,关键就是可以自动化,一切显得快捷、准确。

关于作者: admin

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐