DOS批处理脚本
DOS批处理实例

说明:(1)bat只用修改exe、lnk、kzm这三个参数,无其他设置(2)本文件放在需要绿化、卸载的主程序目录下(3)作者原创,谢绝转载@ECHO OFF&PUSHD %~DP0 &TITLE 绿化和卸载mode con cols=40 lines=20 //窗口宽度color A //文字颜色rem只用修改这三个参数,本文件放在主程序目录下set "exe=AcrobatPortable.exe" //设置绿化的程序名称set "lnk=AAXPPort" //设置创建的快捷方式名set "kzm=pdf" //设置需要注册的文件扩展名为pdfRd "%WinDir%\system32\test_permissions" >NUL 2>NULMd "%WinDir%\System32\test_permissions" 2>NUL||(echo *&&echo *&&echo *&&echo *&&echo *&&echo *&&echo *&&echo *&&Echo 用右键管理员身份运行,以对软件进行设置&&echo 获得更好的体验效果!&&echo *&&echo *&&echo *&&echo *&&echo *&&echo *&&echo *&&echo *&&ping -n 8 127.1>nul&&Exit)Rd "%WinDir%\System32\test_permissions" 2>NULSetLocal EnableDelayedExpansion:Menuif exist config.reg (goto Config) else (goto Install):Config@ echo.@ echo. *****软件已经绿化*****@ echo.@ echo. 创建桌面图标→ 请输入1@ echo.@ echo. 重新【绿化】→ 请输入2345 @ echo.@ echo. 卸载→ 请输入3456@ echo.set /p xj= 输入数字按回车:if /i "%xj%"=="1" Goto Establishif /i "%xj%"=="2345" Goto Installif /i "%xj%"=="3456" Goto Uninstall@ echo.echo 选择无效,请重新输入ping -n 2 127.1>nulclsgoto menu:Install@ echo.echo 开始绿化..请稍等...taskkill /f /im %exe%>NUL 2>NUL //结束进程mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\%lnk%.lnk""):b.TargetPath=""%~dp0%exe%"":b.WorkingDirectory=""%~dp0"":b.Save:c lose")@ echo.@ echo.echo 创建快捷方式成功echo Windows Registry Editor Version 5.00>>Config.REGecho [HKEY_CLASSES_ROOT\.%kzm%]>>Config.REGecho @="%kzm%_auto_file">>Config.REGecho [HKEY_CLASSES_ROOT\%kzm%_auto_file\shell\open\command]>>Config.REG set res=%~dp0%exe%echo @="%res:\=\\% \"%%1\"">>Config.REGstart Config.REG@ echo.echo 注册表写入中,等待你的确认(点击【是】@ echo.goto fanhui:Establishmshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\%lnk%.lnk""):b.TargetPath=""%~dp0%exe%"":b.WorkingDirectory=""%~dp0"":b.Save:c lose")@ echo.@ echo. 创建快捷方式成功@ echo.goto fanhui:Uninstall@ echo.@ echo. 正在卸载中..请稍等.if exist config.reg (del config.reg)if exist %USERPROFILE%\desktop\%lnk%.lnk (del /f %USERPROFILE%\desktop\%lnk%.lnk >NUL 2>NUL)reg delete "HKEY_CLASSES_ROOT\.%kzm%" /f >NUL 2>NULreg delete "HKEY_CLASSES_ROOT\%kzm%_auto_file" /f>NUL 2>NUL@ echo.@ echo. 卸载完成@ echo.ping -n 8 127.1>nulexit:fanhuipauseclsgoto config。
Dos命令进阶(三)---批处理(上)

Dos命令进阶(三)---批处理(上)批处理脚本讲解思路一. 批处理介绍1、批处理的概述:批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。
它的构成没有固定格式,只要遵守以下这条就ok了:(1)每一行可视为一个命令,(2)每个命令里可以含多条子命令,(3)从第一行开始执行,直到最后一行结束,它运行的平台是DOS。
批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。
批处理文件的扩展名是BAT或者CMD,把任何一批命令放在有该扩展名的文件里,执行的时候都会按顺序逐条的执行, 在以后学习内容中, 还可以在其中加入一些逻辑判断的语句,即让里面的命令在满足一定条件时执行指定的命令。
2、举例说明:第一步:建立批处理文件新建一个文本文档,将名字改为第一个实例.bat创建批处理文件第一个实例.bat重命名第二步:写代码右键'第一个实例.bat'文件,选中“编辑”,然后写代码。
代码如下:@echo offecho 非常感谢所有条友的关注与支持!echo 感激不已, 惟有认真, 毫无保留的分享.pause编辑批处理脚本第三步:保存后,双击“第一个实例.bat”运行。
执行批处理脚本简单了解代码意思:@echo off 这一句是关闭回显(缺省回显是打开的),如果没有这一句的话会显示一些比较碍眼的信息。
echo 非常感谢所有条友的关注与支持!echo 感激不已, 惟有认真, 毫无保留的分享.上面两条指令的结果是在屏幕上打印echo后面的内容(如上图例脚本执行的结果)pause 这个pause,英文是暂停的意思,让脚本执行完上面的命令后等用户确认退出详细解释:(1)、echo off 关闭回显(即批处理中的命令语句不会显示)(2)、echo on 打开回显编辑中去除关闭回显的指令行开启回显执行的结果在CMD中解释一下回显是咋个意思(3)、符号“@”的意思是不显示它后面的命令语句,只显示命令执行的结果!把首行命令中的小老鼠符号去掉看看(4)、echo 用于显示echo命令的作用有两个,一个时在CMD上显示一行内容,如:echo 非常感谢所有条友的关注与支持!!还有一个是显示关闭命令的回显:echo off我们在echo off命令前加一个“@”符号是为了不让echo off这条命令本身显示出来,可以让批处理达到整体的美观!如测试以下代码:@echo offecho 你好echo 你好pause第二个实例再次解释一下:pause命令就是暂停的意思,防止批处理执行完毕后直接退出,执行到pause命令时CMD就会显示“请按任意键继续”这一行!3、基础知识补充前面几篇基础知识的链接:DOS基础命令汇总(一)DOS基础命令汇总(二,三,四,五)Dos命令进阶(一)---Net, NetstatDos 命令进阶(二)---FTP命令如果大家对那个DOS命令不明白,可以通过输入“命令”/? 或执行 'help 命令名'4、具体实例分析@echo offecho 正在清除系统垃圾文件,请稍后。
dos批处理start命令的参数bat脚本运行完毕后自动关闭窗口

Dos批处理Start命令的参数,bat脚本运行完毕后自动关闭窗口Dos批处理命令bat文件运行完以后自动关闭dos窗口的方法:很多人运行完批处理命令发现dos窗口不能自动关闭,那是因为你在bat文件中直接执行了需要运行的某些外部程序,如果希望dos窗口自动关闭,那么,你可以使用start命令来执行该外部程序,而不是直接写上一行来执行。
例子说明:view plain copy start "CS" "c:\programmefiles\cs\half-life.exe" "/m" 上面只是一个使用格式的例子,即start "给窗口随便命个名" "带完整路径的程序程序" "程序需要传递的参数串(可省略)"当然,在你的批处理文件末尾,最好不要忘记加上一行:EXIT。
请问Start命令中的/w参数怎么用?我知道/w的大概意思是不回到提示符转到其它的程序。
我想执行一条命令:即运行完DIR后再执行其它命令START dir cd c:\ /w。
这条命令只能执行到DIR便不再执行下去了,是我的命令写错了吗?另请问在START命令中为什么不能执行内部命令,我的DIR 是做了一条批处理的。
【参考回复】请注意,Start会开启新窗口来运行程序,如果新窗口不正常退出,你的批处理就不能正常执行下去,所以如果你要用Start启用dir命令,一定要将dir命令写入一个批处理文件中,然后在批处理文件的最后面加上exit命令。
正确的用法应该是这样:1、建立使用dir命令的批处理如:test.batview plain copy @echo offdir c:\rem ....其它操作exit 2、在另一个批处理中调用该批处理:view plain copy ...start /wait call test.bat... 其实在这里就没有必要使用start /wait了,因为使用了call命令后,test.bat已经控制了流程,一定是在call结束后才会继续下一步的操作。
WindowsDOS命令批处理脚本

WindowsDOS命令批处理脚本批处理程序简单来说,批处理程序就是 Windows ⾃带的脚本,可以在 cmd | powershell 中直接运⾏,若写成⽂件,后缀为 .bat⼩知识1. cmd 与 powershel 不区分⼤⼩写2. 命令⾏的运算操作,类似于 PHP3. DOS 是磁盘操作系统;命令提⽰符是 DOS 系统的界⾯中输⼊ DOS 命令的提⽰位置;cmd 是系统运⾏其⾃带 DOS 的命令;cmd.exe是⼀个 16 位的 DOS 应⽤程序4. PID 是 processid(进程号);IM 是 imaginename(映像名称)5. 在 .bat ⽂件开头加上@echo off代表不输出描述,⽐如C:\Users\14805\desktop>...这样的描述不会输出,直接输出结果6. 设置变量set a=10,输出变量echo %a%,设置变量表达式set /a b=%a%+1简单演⽰:: 两个冒号表⽰ cmd 的注释rem 也表⽰ cmd 的注释# ⼀个井号表⽰ powershell 的注释bat ⽂件内容:echo "Hello World!"pausecmd 运⾏指令:test.bat输出 "Hello World!"powershell 运⾏指令:.\test.bat输出 "Hello World!"覆盖与追加内容覆盖echo "hello world" > t.txt追加echo "hello world" >> t.txt查看内容type多命令运算短路ipconfig || net user从第⼀个执⾏,直到执⾏正确停⽌断路ipconfig && net user从第⼀个执⾏,直到执⾏错误停⽌net user查看所有⽤户net user查看帮助net user /?查看帮助完整版net user /help其他命令感觉有点危险,先不写了参数传递bat ⽂件内容:echo %1 %2poweshell 运⾏指令:.\test.bat Hello World!输出 Hello World!cmd 运⾏指令:年⽉⽇date输出当前⽇期: 2021-09-27date /T输出 2021-09-27时分秒time输出当前时间: 23:14:16.68time /T输出 23:14poweshell 运⾏指令:date输出 2021年9⽉27⽇ 23:14:49calltest.bat ⽂件内容:echo "Hello "call test2.battest2.bat ⽂件内容:echo "Wordl!"poweshell 运⾏指令:.\test.bat输出 Hello World!tasklist | taskill获取当前状态运⾏进程的列表tasklist获取指定要连接的远程系统的 tasklist tasklist /S 192.168.0.1 /U admin /S password其他参数:/FI ⽤于筛选 /FO 输出指定格数tasklist /FI "PID eq 3232" /FO csv > a.csvtaskkill 是关闭进程taskkill /IM notepad.exetree⽂件⽣成树tree输出C:.├───a├───b└───c换⼀种⽂件⽣成树tree /A输出C:.+---a+---b\---c详细⽂件⽣成树tree /F输出C:.├───a│ a.txt│├───b└───cshutdown打开 GUI 执⾏远程主机关机的操作shutdown /i关闭本地主机shutdown /p某个时间点执⾏某个作业at 21:56 "notepad.exe"删除某个作业at 2 /delete每天都在某个位置执⾏某个作业at 22:00 /every:M,T,W,Th,F,S,Su C:\Users\14805\desktop\payload.exe setcmd 运⾏指令:显⽰当前环境变量set输出环境变量值echo %OS%输出 Windows_NT操作⽂件夹创建⽂件夹mkdir testmd test重命名⽂件夹ren test test1将 a ⽂件夹中的⽂件复制到 b ⽂件夹copy a b删除⽂件夹rmdir testrd test删除⽂件del *.txt重命名⽂件move test.txt test1.txt移动⽂件move C:\a\test.txt C:\b\test.txt循环结构1.if () else ()2.if () else ()3. 循环⽂件夹# for /d %%名称 in (路径/*) do 具体操作.bat⽂件内容:打印当前⽂件夹下的所有⽂件夹for /d %%a in (*) do echo %%a4.循环⽂件# for /r "⽬录⽂件" %%名称 in (匹配规则,例如 *.py) do 具体操作.bat⽂件内容:打印当前⽂件夹下的所有.py⽂件for /r "C:\Users\14805\Desktop\abc" %%a in (*.py) do echo %%a5.循环数字# for /L %%a in (start,step,end) do 具体操作.bat⽂件内容:ping 168.0.0.1 ⾄ 168.0.0.20(传⼊参数 %1 等于 168.0.0)for /L %%a in (1,1,20) do ping %1.%%a6.循环⽂件中的内容# for /F %%a in (⽂件名) do 具体操作.bat⽂件内容:打印test.bat中的内容for /F %%a in (test.bat) do echo %%a 常⽤快捷键清屏cls显⽰当前⽬录dir (cmd | powershell)ls (powershell)打开当前⽂件夹start .查找⽂件dir *.txt (cmd | powershell)显⽰当前路径pwd (powershell)。
运行DOS批处理不显示DOS窗口的方法

运行DOS批处理不显示DOS窗口的方法要在运行DOS批处理时隐藏DOS窗口,你可以使用以下方法:1. 使用VBScript编写脚本:创建一个VBScript脚本,命名为`hide.vbs`,并将以下代码复制到脚本中:```vbscriptSet objShell = CreateObject("WScript.Shell")objShell.Run "cmd /c your_batch_file.bat", 0, False```将`your_batch_file.bat`替换为实际的批处理文件名。
然后,双击运行`hide.vbs`脚本,它将以隐藏的方式运行批处理文件。
2.使用第三方工具:有许多第三方工具可用于隐藏DOS窗口并运行批处理文件。
其中一个常用的工具是`nircmd`。
你可以按照以下步骤来使用它:```start /min C:\nircmd\nircmd.exe exec hide"your_batch_file.bat"```将`C:\nircmd\nircmd.exe`替换为你解压`nircmd`的路径,并将`your_batch_file.bat`替换为实际的批处理文件名。
- 将批处理文件保存为扩展名为`.bat`的文件,并双击运行它。
它将以隐藏的方式运行批处理文件。
3.将批处理文件转换为可执行文件:你还可以使用一些软件将批处理文件转换为可执行文件(通常是EXE 或COM文件),这样当你运行它时就不会显示DOS窗口。
以下是一些可用的工具:- Advanced BAT to EXE Converter:这是一个商业软件,提供更多功能和选项来转换批处理文件为可执行文件。
无论使用哪种工具,你都需要按照软件的说明和向导来转换批处理文件为可执行文件。
一旦转换完成,你可以双击运行可执行文件,它将在后台运行批处理文件,而不会显示DOS窗口。
DOS(包含IF语法)批处理命令全集

DOS批处理命令全集(echo@if的用法)本来以为批处理和DOS没什么联系,并且认为批处理一下就可以学完所以就决定一周之内完成学习。
学习了之后发现,批处理是一个庞大的体系,要想完全掌握在短期内是没有办法完成的。
它和DOS命令有着不可分割的联系。
说白了,批处理就是一大片的DOS命令。
所以要想完成掌握批处理就相当于要将DOS 命令完成学会,除此之后还得学习一些语法知识。
因此,一周之内是无法完成的,不过没有完成也得写总结啊,不然不白学了么!这也是我写这篇文章的目的之一。
我将首先将我自己掌握的用通俗的语言描绘出来,力争让没有一点DOS基础的人也能按照我的文章自己学下去。
要学批处理,那我们就有必要知道什么是批处理。
一看到名字,批处理嘛,那么肯定可以对文件进行批量的处理。
批处理包括两种,一种是DOS批处理,另一种是PS(PHOTOSHOP)批处理。
我研究的是前者,后者主要是对图片进行处理的,我暂时没有这个雅兴去研究这个,大家有兴趣可以去试一下,到时候教教我也好。
前面已经说过了,批处理就是对文件进行批量处理的。
那么DOS批处理应该就是对一大批的DOS 命令一起处理的意思,这样理解的话,那么好了,我们学习它就容易多了,以后只要多去背一下DOS命令然后就可以写批处理文件了。
晕!忘了说怎么建立一个批处理文件了。
其实也很简单,可能我不说大家也知道。
就是这样建立的:打开一个记事本---在里面写上你的DOS命令---保存--命名以BAT为后缀(就是batch了,批处理的英文)。
行了,批处理文件建立成功了。
行了,现在废话少说,进入正题!开始我们的批处理语法及一些主要命令。
首先,我看到的最陌生的命令---echo。
这个命令我开始看的时候比较陌生,不太明白是干什么用的。
看完资料后自己试验了一下才明白它的具体作用。
下面我用通俗的语言还解释一下(避免用官方语言解释,免得大家都睡着了)。
ECHO在英文中就是回显的意思,就相当于C语言中的printf,例如ECHOHELLOWORLD,就相当于将HELLOWORLD打印出来。
最全的DOS命令帮助程序批处理代码

@echo off color 0e :ks cls echo ========================== echo 欢迎使用批处理帮助程序 echo %DATE% (by:诗酒飘零) echo ========================== echo. echo 请输入你想查询的批处理命令? echo (q键退出;h键帮助) echo. set /p lc= ★命令★: if %lc%==q goto e if %lc%==h help %lc% /? >a.txt if errorlevel 1 goto no if errorlevel 0 goto yes :yes start a.txt goto ks :no echo ========================================== echo 找不到你要的批处理命令,请检查后重新输入命令! echo ========================================= del a.txt pause call %0 :e del a.txt exit
也动打开跟脚本之家发布的上面那个类似想学习批处理的朋友可以参考下
最全的 DOS命令帮助程序批处理代码
根据命令命名的txt 复制代码 代码如下:
@echo off :z @cls @set /p "d=输入要BAT指令:" @ %d% /? > %d%.txt goto z goto z
用批处理让DOS做算数运算

问题。
-----------------------------------------------
:sub
set /a shu_1=%random:~-1%
set /a shu_3=%random:~-1%
if %shu_1% leq %shu_3% (set /a shu_2=%shu_1% && set /a shu_1=%shu_3%) else set /a shu_2=%shu_3%
:add
set /a shu_1=%random:~-1%
set /a shu_2=%random:~-1%
set /a jieguo_1=%shu_1%+%shu_2%
set jieguo=
set/p jieguo=%shu_1%+%shu_2%=
if "%jieguo%"=="q" goto :exit
用批处理让DOS运算加法减法乘法除法
@echo off
:chushi
cls
set /a zque=0
set /a cwu=0
echo.
echo ---------------------加减法程序-------------------
echo 程序功能说明:
echo 1、产生两个随机数的加减法;
set /a jieguo_1=%shu_1%-%shu_2%
set jieguo=
set/p jieguo=%shu_1%-%shu_2%=
if "%jieguo%"=="%jieguo_1%" goto :right
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DOS批处理脚本这是一篇技术教程,真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识。
写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇教程的方法,就是慢!慢慢的,如同品一个女人、一杯茗茶,你会发现很多以前就在眼前的东西突然变的很遥远,而有些很遥远的东西却又突然回到了眼前。
.先概述一下批处理是个什么东东。
批处理的定义,至今我也没能给出一个合适的----众多高手们也都没给出----反正我不知道----看了我也不一定信服----我是个菜鸟,当然就更不用说了;但我想总结出一个“比较合适的”,而且我也相信自己可以把它解释的很清楚,让更多的菜鸟都知道这是个什么东东,你用这个东东可以干什么事情。
或许你会因为这篇文章而“无条件爱上批处理”,那么我的目的就达到了----我就是要让你爱上它,我就这么拽,你能怎么着??真的,爱有时候就这么拽,就是这么没理由,就是这么不要脸!真的!按照我的理解,批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。
OK,never claver and get to business(闲话少说言归正传)。
批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。
它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。
批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。
我不想让自己写的教程枯燥无味,因为牵缠到代码(批处理的内容算是代码吧?)的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。
所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!)。
再说句“闲话”:要学好批处理,DOS基础一定要牢!当然脑子灵活也是很重要的一方面。
例一、先给出一个最easy的批处理脚本让大家和它混个脸熟,将下面的几行命令保存为name.bat然后执行(以后文中只给出代码,保存和执行方式类似):ping > a.txtping >> a.txtping >> a.txtping >> a.txtping >> a.txtping >> a.txtping >> a.txtping >> a.txtexit是不是都能看的懂?是不是很easy?但它的作用却是很实用的,执行这个批处理后,可以在你的当前盘建立一个名为a.txt的文件,它里面记录的信息可以帮助你迅速找到速度最快的QQ服务器,从而远离“从服务器中转”那一痛苦的过程。
这里>的意思,是把前面命令得到的东西放到后面所给的地方,>>的作用,和>的相同,区别是把结果追加到前一行得出的结果的后面,具体的说是下一行,而前面一行命令得出的结果将保留,这样可以使这个a.txt文件越来越大(想到如何搞破坏了??)。
By the way,这个批处理还可以和其他命令结合,搞成完全自动化判断服务器速度的东东,执行后直接显示速度最快的服务器IP,是不是很爽?后面还将详细介绍。
例二、再给出一个已经过时的例子(a.bat):@echo offif exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gifa.bat为什么说这是个过时的例子呢?很简单,因为现在已经几乎没有人用带广告的QQ了(KAO,我的QQ还显示好友三围呢!!),所以它几乎用不上了。
但曾经它的作用是不可小窥的:删除QQ的广告,让对话框干干净净。
这里用的地址是QQ的默认安装地址,默认批处理文件名为a.bat,你当然可以根据情况自行修改。
在这个脚本中使用了if命令,使得它可以达到适时判断和删除广告图片的效果,你只需要不关闭命令执行后的DOS窗口,不按CTRL+C强行终止命令,它就一直监视是否有广告图片(QQ也再不断查看自己的广告是否被删除)。
当然这个脚本占用你一点点内存,呵呵。
例三,使用批处理脚本查是否中冰河。
脚本内容如下:@echo offnetstat -a -n > a.txttype a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!" del a.txtpause & exit这里利用了netstat命令,检查所有的网络端口状态,只需要你清楚常见木马所使用的端口,就能很easy的判断出来是否被人种了冰河。
然这不是确定的,因为冰河默认的端口7626,完全可以被人修改。
这里介绍的只是方法和思路。
这里介绍的是方法和思路稍做改动,就变成可以检查其他木马的脚本了,再改动一下,加进去参数和端口及信息列表文件后,就变成自动检测所有木马的脚本了。
呵呵,是不是很过瘾?脚本中还利用了组合命令&&和管道命令|,后面将详细介绍。
例四,借批处理自动清除系统垃圾,脚本如下:@echo offif 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 echocls::clean screenecho This programme is to make the MASM programme automate::display infoecho Edit by CODERED::display infoecho Mailto me : qqkiller***@::display infoif "%1"=="" goto usage::if input without paramater goto usageif "%1"=="/?" goto usage::if paramater is "/?" goto usageif "%1"=="help" goto usage::if paramater is "help" goto usagepause::pause to see usagemasm %1.asm::assemble the .asm codeif errorlevel 1 pause & edit %1.asm::if error pause to see error msg and edit the codelink %1.obj & %1::else link the .obj file and execute the .exe file:usage::set usageecho Usage: This BAT file name [asm file name]echo Default BAT file name is START.BAT::display usage先不要被这一堆的东西给吓怕了,静下心来仔细的看(回想一下第一章中第一段是怎么写的!!)。