几个批处理例子

例一、再给出一个已经过时的例子(a.bat):

@echo off
if exist C:/Progra~1/Tencent/AD/*.gif del C:/Progra~1/Tencent/AD/*.gif
a.bat


为 什么说这是个过时的例子呢?很简单,因为现在已经几乎没有人用带广告的QQ了(KAO,我的QQ还显示好友三围呢!!),所以它几乎用不上了。但曾经它的 作用是不可小窥的:删除QQ的广告,让对话框干干净净。这里用的地址是QQ的默认安装地址,默认批处理文件名为a.bat,你当然可以根据情况自行修改。 在这个脚本中使用了if命令,使得它可以达到适时判断和删除广告图片的效果,你只需要不关闭命令执行后的DOS窗口,不按CTRL+C强行终止命令,它就 一直监视是否有广告图片(QQ也再不断查看自己的广告是否被删除)。当然这个脚本占用你一点点内存,呵呵。


例二,使用批处理脚本查是否中冰河。脚本内容如下:

@echo off
netstat -a -n > a.txt
type a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!"
del a.txt
pause & exit

这 里利用了netstat命令,检查所有的网络端口状态,只需要你清楚常见木马所使用的端口,就能很easy的判断出来是否被人种了冰河。然这不是确定的, 因为冰河默认的端口7626,完全可以被人修改。这里介绍的只是方法和思路。这里介绍的是方法和思路稍做改动,就变成可以检查其他木马的脚本了,再改动一 下,加进去参数和端口及信息列表文件后,就变成自动检测所有木马的脚本了。呵呵,是不是很过瘾?脚本中还利用了组合命令&&和管道命 令|,后面将详细介绍。

例三、借批处理自动清除系统垃圾,脚本如下:

@echo off
if exist c:/windows/temp/*.* del c:/windows/temp/*.*
if exist c:/windows/Tempor~1/*.* del c:/windows/Tempor~1/*.*
if exist c:/windows/History/*.* del c:/windows/History/*.*
if exist c:/windows/recent/*.* del c:/windows/recent/*.*

将以上脚本内容保存到autoexec.bat里,每次开机时就把系统垃圾给自动删除了。这里需要注意两点:一、DOS不支持长文件名,所以就出现了Tempor~1这个东东;二、可根据自己的实际情况进行改动,使其符合自己的要求。

怎 么样,看到这里,你对批处理脚本是不是已经有点兴趣了?是不是发现自己已经慢慢爱上了这个东东?别高兴的太早,爱不是一件简单的事,它也许能带给你快乐和 幸福,当然也能让你痛苦的想去跳楼。如果你知道很难还敢继续的话,I 服了 YOU!继续努力吧,也许到最后你不一定得到真爱(真的有这可能,爱过的人都知道),但你可以体会到整个爱的过程,就是如此。 酸、苦和辣,有没有甜天知道。

为什么会把批处理和爱情扯上关系?不是我无聊,也不是因为这样写有趣多少,原因有二:其一,批处理和爱情有 很多相同的地方,有些地方我用“专业”的行话解释不清(我不怀疑自己的表达能力,而是事情本身就不好说清楚),说了=没说,但用地球人都知道的爱情一比喻 (爱情是什么?我**怎么知道!!),没准你心里一下就亮堂了,事半功倍,何乐而不为?其二,我这段时间状态不是很好,感冒发烧头疼鼻塞,但主要还是感情 上精神摧残,搞的人烦透了,借写教程之际感慨几句,大家就全当买狗皮膏药了,完全可以省略不看(也许还真有点效果----不至于让你看着看着就睡着了,把 头磕了来找我报销医药费)。说不定下次的教程中大家还会看到杨过、张无忌等金老前辈笔下的英雄们。


看过第一章的朋友,一定对批处 理有了初步的印象,知道它到底是用来干什么的了。但你知道运用批处理的精髓在哪里吗?其实很简单:思路要灵活!没有做不到的,只有想不到的。这和爱情就有 点不同了,因为爱情的世界是两个人的世界,一厢情愿不叫爱情(补充:那叫单恋。废话!)而批处理却是一个人的天堂,你可以为所欲为,没有达不到的境界!

批 处理看起来杂乱无章,但它的逻辑性之强,绝对不比其他程序语言(如汇编)低,如果你写的脚本是一堆乱麻,虽然每一行命令都正确,但从头执行到尾后,不一定 得到你想要的结果,也许是一屏幕的Bad command or fail name。这又和爱情有了共同点:按步骤来经营,缺少或增多的步骤都可能导致不想看见的结果。陷入爱河的朋友,相信没有不肯定这句话的。我的爱情批处理, 输出的结果不是Bad command or fail name,屏幕是这么显示的:‘你的爱情’不是内部或外部命令,也不是可运行的程序或批处理文件。然后就是光标不停闪动,等待这下一次错误的输入。

从 这一章开始,将由浅入深的介绍批处理中常用的命令,很多常见DOS命令在批处理脚本中有这广泛的应用,它们是批处理脚本的BODY部分,但批处理比DOS 更灵活多样,更具备自动化。要学好批处理,DOS一定要有比较扎实的基础。这里只讲述一些比较少用(相对来说)的DOS命令,常用命令如COPY、DIR 等就不做介绍了(这些看似简单的命令实际复杂的很,我怕自己都说不清楚!)。

例四、先看一个实例。这是一个很有意思的脚本,一个小巧实用 的好东东,把批处理“自动化”的特点体现的淋漓尽致。先介绍一下这个脚本的来历:大家都知道汇编程序(MASM)的上机过程,先要对源代码进行汇编、连 接,然后再执行,而这中间有很多环节需要输入很多东西,麻烦的很(只有经历过的朋友才懂得)。如何使这个过程变的简单呢?在我们搞汇编课程设计时,我“被 逼”写了这个脚本,用起来很爽,呵呵。看看脚本内容:

@echo off
::close echo
cls
::clean screen
echo This programme is to make the MASM programme automate
::display info
echo Edit by CODERED
::display info
echo Mailto me : qqkiller***@sina.com
::display info
if "%1"=="" goto usage
::if input without paramater goto usage
if "%1"=="/?" goto usage
::if paramater is "/?" goto usage
if "%1"=="help" goto usage
::if paramater is "help" goto usage
pause
::pause to see usage
masm %1.asm
::assemble the .asm code
if errorlevel 1 pause & edit %1.asm
::if error pause to see error msg and edit the code
link %1.obj & %1
::else link the .obj file and execute the .exe file
:usage
::set usage
echo Usage: This BAT file name [asm file name]
echo Default BAT file name is START.BAT
::display usage

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 批处理是一种在Windows操作系统中用于批量处理任务的脚本语言。批处理删除文件名最后几个字的话,我可以编写一个简单的批处理脚本来实现这个功能。 你可以按照以下步骤来完成: 1. 首先,打开一个文本编辑器,新建一个批处理文件,以.bat为扩展名,例如 "delete_last_chars.bat"。 2. 使用以下命令编写脚本内容: ``` @echo off setlocal enabledelayedexpansion set target_dir=D:\your_folder_path\ [这里替换成你实际的文件夹路径] for /R %target_dir% %%F in (*) do ( set "filename=%%~nF" set "extension=%%~xF" set "new_filename=!filename:~0,-number_of_chars!!extension!" ren "%%F" "!new_filename!" ) echo 文件名删除完毕! pause ``` 3. 将 "D:\your_folder_path\" 替换为你想要批量删除文件名最后几个字的文件夹路径。 4. 将 "number_of_chars" 替换为你想要删除的文件名的最后几个字的个数。 5. 保存并关闭文本编辑器。 6. 双击运行批处理文件,它将删除指定文件夹中所有文件名最后几个字的字母。 7. 执行完毕后,命令行窗口会显示 "文件名删除完毕!",按任意键退出。 请注意,运行前最好先备份文件夹中的文件,以免意外删除错误的文件。此外,确保输入的路径和文件名的数量正确无误。 ### 回答2: 批处理是一种用于自动执行一系列命令或操作的脚本,可以用来实现文件操作功能,如删除文件。要实现批处理删除文件名最后几个字的功能,可以使用以下方法: 1. 使用批处理的字符串操作命令。可以通过截取字符串的方式删除文件名最后几个字。以下是一个示例代码: ``` @echo off setlocal enabledelayedexpansion set targetFolder=C:\path\to\folder for /R "%targetFolder%" %%F in (*.bat) do ( set "filename=%%~nF" set "extension=%%~xF" set "newfilename=!filename:~0,-4!!extension!" echo Deleting %%F del "%%F" ) ``` 上述代码中,`set targetFolder=...`用于设置需要进行文件删除操作的文件夹路径。`for /R "%targetFolder%" %%F in (*.bat) do`用于遍历文件夹中的所有.bat文件。`set "filename=%%~nF"`用于获取文件名部分。`set "extension=%%~xF"`用于获取文件后缀。`set "newfilename=!filename:~0,-4!!extension!"`用于截取文件名的开头到倒数第4个字符,然后与文件后缀拼接为新的文件名。`echo Deleting %%F`用于打印正在删除的文件名。`del "%%F"`用于删除文件。 2. 批处理也可以通过使用辅助工具实现删除文件名最后几个字的功能。例如使用第三方工具`PowerShell`来进行字符串截取操作。以下是一个示例代码: ``` @echo off set targetFolder=C:\path\to\folder set powershellExe=C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe for /R "%targetFolder%" %%F in (*.bat) do ( set "filename=%%~nF" set "extension=%%~xF" set "command=^& {Write-Output -n %%F; $newfilename = $filename.Substring(0, $filename.Length-4) + $extension; Move-Item -Path %%F -Destination $newfilename}" echo Deleting %%F %powershellExe% -Command "%command%" ) ``` 上述代码中,`set targetFolder=...`用于设置需要进行文件删除操作的文件夹路径。`set powershellExe=...`用于设置PowerShell可执行文件的路径。`for /R "%targetFolder%" %%F in (*.bat) do`用于遍历文件夹中的所有.bat文件。`set "filename=%%~nF"`用于获取文件名部分。`set "extension=%%~xF"`用于获取文件后缀。然后使用PowerShell命令进行字符串截取操作,并将新文件名与原文件进行重命名操作。 `echo Deleting %%F`用于打印正在删除的文件名。`%powershellExe% -Command "%command%"`用于执行PowerShell命令。 以上是两种使用批处理删除文件名最后几个字的方法,根据具体情况选择适合自己的方法进行操作。 ### 回答3: 批处理是一种可以批量处理多个文件或任务的脚本语言。在批处理中,我们可以使用一些命令来删除文件名的最后几个字。下面是一个示例的批处理脚本,可以删除目录中所有文件名的最后3个字: ``` @echo off setlocal EnableDelayedExpansion set targetFolder=C:\path\to\your\folder for %%F in ("%targetFolder%\*.*") do ( set "filename=%%~nF" set "extension=%%~xF" set "newFilename=!filename:~0,-3!!extension!" echo Deleting: %%F echo Renaming to: !newFilename! ren "%%F" "!newFilename!" ) echo All files have been renamed and processed. endlocal ``` 在这个脚本中,我们首先设置了一个变量`targetFolder`,用于指定目标文件夹的路径。然后,我们使用`for`循环遍历该文件夹下的所有文件。对于每个文件,我们获取它的文件名和扩展名,并使用`set`命令进行处理。 在这个例子中,我们使用`!filename:~0,-3!`来截取文件名的前N个字符,其中N为要删除的字符数。然后,我们将新的文件名和原扩展名结合起来,并使用`ren`命令进行文件重命名。 脚本执行完成后,将显示所有已重命名和处理的文件。 请注意,执行此批处理脚本有一定风险,请确保在执行前备份所有文件,以防意外删除或重命名。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值