批处理--复制,解压文件,goto,nul

rem 复制文件

copy  "D:\xxxx" "C:\xxxx"



rem 复制文件夹

xcopy "D:\xxxx" "C:\xxxx" /e /i /h



解压使用开源的7z命令版本(license GNU LGPL)

7za x -y D:\xxxx.zip -oC:\

::其中 -y  是覆盖

::-oC:\    是输出到C:\下
rem if errorlevel可以捕获错误

if errorlevel 数字

::数字从大到小排列,意思是如果errorlevel大于数字,就……



rem goto可以充当break的功能,使for退出循环

::在for外层放置一个标签:_break,然后在for里面goto _break,实现,在for里面(不管哪层)一旦用goto就会结束循环

rem goto一般和:是联用的goto跳转的地方入口就是":"。goto命令的另一种用法一:提前结束程序。在程序中间使用goto命令跳转到



">nul 2>nul"可以屏蔽一切屏幕的输出,例如:dir >nul 2>nul这样屏幕上什么都不会输出,也就是没有结果。



1>nul 表示将正确执行目录树的信息禁止输出,2>nul 表示将执行过程中的错误信息禁止输出。

 

rem set赋值

set 变量=::等号左右一定不能有空格

 

rem 删除文件用的是del命令,删除文件夹必须使用rd命令



rem rd的另外一个写法是rmdir,源自ReMakeDirectory。使用的方法也很简单:rd 文件夹名 即可,例如:rd test。它支持带路径的文件夹名,例如:rd d:\test。 



  有时候,rd并不能很好地完成任务:你让它删除test文件夹,它却傲慢地向你翻白眼:目录不是空的。不过,这也不能怨它偷懒不干活,只是它的脾气有点怪:如果要删除的文件夹下面还有子文件,你得给rd戴顶高帽,加个 /s 参数,它才会高高兴兴地帮你做事,所以,正确的写法是:rd /s test。 



  如果你是个彻头彻尾的懒鬼,光是使用 rd /s test ,可能还是对它不甚满意,因为当你在删除带子文件的文件夹的时候,CMD总是不识时务地停下来,殷勤地问你:是否确认(Y/N)?非得等你输个字符敲下回车不可。命苦不能怨政府,点背不能怨社会,谁叫rd有那么大的威力呢,它一旦耍起流氓来,那是谁也拦不住的——rd有风险,删除须谨慎啊。好在微软对那些对删除十分有把握而又懒得要命的家伙体贴入微,提供了一个十分方便的参数 /q ,它取自quiet,官方解释为:安静模式,带 /S 删除目录树时不要求确认。这次再试试:rd /q /s test,真个是:弹指一挥间,灰飞烟灭,是不是有眼不见心不烦的酣畅感? 

 

你可能感兴趣的:(批处理)