使用批处理打包程序,由此思考批处理的应用

    在程序打包工作中遇到一些重复性的工作,手动固然可以完成,但过程繁琐,效率低下,具体问题如下:

    问题1:打包程序时将编译好的程序文件夹拷贝到指定目录

    问题2:将指定目录文件夹压缩成一个zip格式文件

    问题3:压缩之前要将压缩包中的一些日志文件夹、无用文件删除

    问题4:自动解压程序压缩包到指定目录

    问题5:启动该程序;杀死该程序的进程

    对于重复性的动作,脚本语言是一个有用的工具,这里使用批处理完成以上目标。

 
    编写批处理命令
  (1)设置批处理参数
::设置软件编译Debug生成目录
set programPath=F:\MyProgram\Debug

::设置发布根目录(路径中的中文名称用双引号引用)
set programPublishRootPath=F:\"发布目录"
::设置软件发布目录
set programPublishPath=%programPublishRootPath%\MyProgram

::设置压缩包目录(本机安装的压缩程序WinRAR目录) 
set winrarPath
=C:\Programs\WinRAR\WinRAR.exe ::设置压缩包名称 set compressFileName=MyProgram.zip

  (2)编写批处理命令

::问题1:打包程序时将编译好的程序文件夹拷贝到指定目录

::不存在则创建备份目录
if not exist %programPublishPath% md %programPublishPath%
xcopy %programPath% %programPublishPath% /s /e /y


::问题2:将日志文件夹及其中文件删除
rd /s /q %programPublishPath%\Log


::问题3:将指定目录文件夹压缩成一个zip格式文件(压缩与解压缩命令参考winrar帮助文档)
%winrarPath% a -afzip -ep1 -o+ %programPublishRootPath%\%compressFileName% %programPublishPath%


::问题4:自动解压程序压缩包到指定目录
%winrarPath% x -ibck -y %programPublishRootPath%\%compressFileName% E:\

 
::问题5:启动该程序;杀死该程序的进程
::(1)启动程序
start E:\MyProgram\MyProgram.exe

::(2)杀死进程
taskkill /f /IM MyProgram.exe /t
 
    总结曾经使用过批处理解决过的问题:
  1. 文件夹创建、复制、删除等
  2. 启动Windows Service
  3. 启动程序、杀死进程
  4. 每日定时SVN 同步
  5. 创建程序桌面快捷方式
  6. ping 指定机器是否连通
  7. 注册ocx组件
  8. 源代码项目根据模板自动生成程序集信息类
  9. 程序自动化发布
  10. 程序打包、压缩、解压
  11. FTP自动上传、下载文件
 
    思考问题:
  1. 批处理用在什么地方?哪些场景批处理是常客,不该被遗忘?不断重复要做的事情,考虑将这个过程自动化。
  2. 除了批处理还有哪些类似方案?Windows平台中的PowerShell,脚本语言Python……
  3. 批处理的本质是什么?逐条执行的程序,交互程序,交互工具。
  4. 批处理好处虽多,但很多人并未从中受益?图形化vs命令行,多数人习惯用界面操作,界面操作主要通过鼠标和操作系统交互,入门容易,习惯一旦形成很难去打破;批处理是命令行操作,需要敲入命令和操作系统交互,入门有一定难度,人天性抗拒困难

猜你喜欢

转载自www.cnblogs.com/maomu/p/12445312.html
今日推荐