高效办公,从几行批处理命令开始 | 原力计划

2020 年 4 月 1 日 CSDN

作者 | 造轮子

责编 | 伍杏玲

出品 | CSDN博客

封图 | 视觉中国

在职场中,时间就是金钱,效率堪比“生命”。能否高效准时完成领导布置的任务,关系到后续的考核考评升值加薪,以及走上人生巅峰、迎娶白富美。当然,也有一些大佬家里有矿,那就不在我说的这个行列了。对于和我一样,默默朝九晚五,期待有朝一日龙得水的程序员,技术进步是关键,但能否将技术转化成自我进步的阶梯,这就需要在每个人心中默默的画个问号了。
闲话少说,今天分享的文章,讲解如何将平常频繁的单调工作、操作,通过系统自带的命令行,变得自动起来,不需要每件事都亲力亲为,节省时间,提高效率。

关机与重启


1.1、关机
如果你觉得每天手动关机太麻烦,给你一行命令,让电脑每天定时自动关机。

@echo off
at 00:00 shutdown -s -f REM 每天00:00关闭所有程序后关机。

将这行命令保存到.bat文件中,Win7系统拖动到“ 开始→程序→启动 ”目录下,Win10系统拖动到“ C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp ”路径下,每天到00点(具体时间按个人需求修改),Windows将会自动执行命令----关机。

1.2、重启
如果需要经常重启电脑,一步即可帮你搞定!

@echo off
:: -t表示等待时间,0表示立刻重启
shutdown -r -t 0

1.3、注销

注销电脑,同样一步搞定!!
   
   
     
@echo  off
:: -f 表示强制注销,不会提示用户
shutdown -l -f
1.4、休眠
   
   
     
@echo  off
:: 立刻休眠计算机
shutdown -h 
上述是日常生活中用到的部分命令,如果你想深入钻研,可以直接通过帮助手册查看,进入 cmd 界面,敲入命令 /? ,即可查看详细命令,如下:

备份数据


如果你有一份数据,需要定期备份到服务器或者其他位置,你是不是需要每次复制粘贴呢?这样重复做着一件事,是不是很枯燥,再加上时间就是金钱,哪有那么多时间重复造轮子?这里给你提供一粒良药,用得好,可以节省很多时间,提高效率。
   
   
     
@echo off
::文件来源为本机e盘的work文件夹
set  source=D:\ work
::目标文件夹为PC机 192.168.0.1backup文件夹
set dest=\\ 192.169.1.12\ backup
:: 登录远程环境
net  use \\ 192.169.1.12\IPC$  "adm123" / user"administrator"
:: 拷贝
xcopy /e /v /r /y /z % source% %dest% 
将以上脚本放到桌面或者加入定时启动项任务,每次定时备份,不是可以节省很多时间么?

WinRAR妙用


WinRAR简直是个神器,为什么这么说呢?在之前工作中,有个任务是定期升级很多项目,然后发布到公司官网,但是有些项目没有迭代,无需更新,按理说只需要更新修改的就行。20多个项目,每次都需要手动检查打包一遍,然后提交更新,非常繁琐。好在后来认识了WinRAR这个神器,我只需要花一次时间,把需要打包压缩的内容告诉它,后续我只需双击一下它,它就可以帮我出色的完成任务,最重要的一点,它可以自动对比文件有没有被修改,从而决定要不要拷贝,节省了大量的时间。
WinRAR之所以能够自己找到需要的文件进行备份,秘密就在一个列表文件上。这以1st为后缀名的文件实际上是一个纯文本文件,其中的内容便是需要备份的文件列表,需要提供备份文件的完成路径。
   
   
     
\\fst1\work  // 机器1上的工作文件夹
\\fst2\work  // 机器2上的工作文件夹
① 在自己喜欢的目录下新建一个文件夹,比如data,新建一个文本文件,将上面两行列表输入,另存为 .lst 即可,切记文件后缀是 lst 。
② 完成上面文件编写后,接着通过WinRAR备份数据。打开data文件夹,在空白处点击右键,选择 “新建→快捷方式” ,在弹出的“创建快捷方式”对话框中输入以下命令:
   
   
     
″c:\program files\WinRAR\WinRAR.exe″ u -y -ep2 d:\ data\ data.rar  @d:\ data\bak .1st
点击“下一步”,直到完成,即可创建一个快捷方式。以上命令行中的参数意义为:
  • u表示更新压缩包内的文件;

  • -ep2表示当压缩时存储完整的文件路径;

  • -y表示所有的询问均回答“是”。

但是有的文件并不是新版完全代替旧版,因此不能进行更新替换,每天必须保存为不同的备份文件。此时,我们在“创建快捷方式”对话框中要输入的命令应该如下所示:
   
   
     
C:\ Program  files\ WinRAR\ WinRAR .exe″  a  -ep2  -ag  ddmmyy  d:\ data\ data .rar @ d\ data\ bak. 1st
其中,“-ag” 表示以当前日期与时间生成压缩文件名,后面的附加字串“ddmmyy”表示所用日期的格式。data.rar为基本文件名,最后生成的文件名后面还会依照我们指定的格式附上日期。这样,每次运行该快捷方式时,便会在服务器的D盘data文件夹下生成一个形如data200321.rar的备份文件。

批量启动程序


正如开头所说,菜鸟被领导批评了,原因是什么呢?8:30准时上班,8:31的时候,工作环境都没打开,还在慢吞吞地登录邮箱,对比旁边的大佬,已经开始工作了,领导心里自然不是舒服,那怎么样才能让你快速开启工作环境,高效工作呢,以下命令行帮你。
用批处理命令 start 呀,将需要启动的程序编写好,只需要双击或者加入启动项,开机就会直接启动。
   
   
     
@echo off 
echo  Start Google..
start  ""  "C:\Program Files (x86)\Chrome\chrome.exe"
echo  Start youdao..
start  ""  "D:\Program Files (x86)\youdao"
:: 按照上述格式,将需要打开的程序路径写在 start后的第二个参数位置即可。

添加路由


菜鸟刚入职时,公司内网有很多小网网段,怎么连都连不上,请教导师,导师用一行命令,让我可以畅通内网,原来是添加路由,相信很多初入职场的新人也遇到过这种小问题。下面给出终极脚本。
   
   
     
:: 添加永久路由
route  add 192 .168.0.0  mask 255 .255.0.0 192 .169.13.1  -p
上述命令将添加192.168.0.0网段路由到192.169.13.1网关,这样博主的192.169.13.5就可以访问192.168.0.0网段的所有服务器。关于route的详细命令,可使用 /? 参数查看,也可以看博主总结的思维导图, 在本文末尾章节。

批处理脚本编译代码

 众所周知,Windows下C++等开发都是可视化界面,常用的是Visual Studio系列,这种可视化编程工具,提供了傻瓜式的编程流程。只要你会写业务代码,点击编译器“重新生成解决方案”,编译器会自动帮你编译程序,你不需要了解编译器的原理,即可轻松的干完工作。但是,问题来了,比如你有n多个项目,不是同一个解决方案,如果要发布版本,你是不是需要依次打开这n多个项目,逐个点击编译?周而往复,乐此不疲?
其实大家都知道,我们对新鲜事保持敏感,过了新鲜期,一般就会觉得枯燥无聊,传说中的婚姻就是这样的,不知道在座的各位大佬有无体会?那编译程序也是如此,每次发布版本,你都要执行上述操作,烦死了。那咋办呢?给你一招,让你只新鲜一次,爽!
进入正题,下面将博主多年前在Windows下使用批处理编译项目的脚本贴出来,有需要的同学可以复用。

启动文件

   
   
     
@echo off
set TargetDirOld=MyWork
set TargetDir=%~dp 0%date:~ 0, 4%%date:~ 5, 2%%date:~ 8, 2%_MyWork. 100
set TargetDir1=%~dp 0%date:~ 0, 4%%date:~ 5, 2%%date:~ 8, 2%MyWork. 100Bak
set LogFile=%~dp0output.txt 
set deven2008= "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"
if exist %LogFile% (
 del %LogFile%

echo 原文件夹:%TargetDirOld% >>%LogFile%
echo 目标文件夹:%TargetDir% >>%LogFile% 
echo  1、拷贝原文件
if  not exist %TargetDir% ( 
  mkdir %TargetDir%
)
if  not exist %TargetDir1% (
  mkdir %TargetDir1%
)
cd ..
echo 开始拷贝文件,%Date% %time%
echo 当前路径:%cd% 
echo 目标为 %TargetDir% ,拷贝一份作为最终文件
xcopy / y /R /e %TargetDirOld%\*.* %TargetDir% >>%LogFile%
echo 目标为 %TargetDir% ,拷贝一份作为编译临时文件
xcopy / y /R /e %TargetDirOld%\*.* %TargetDir1% >>%LogFile%

::进入编译目录
cd %TargetDir1%  
echo 当前路径 : %cd% 

cd ..
echo 开始编译 %Date% %time%
call VideoPlay.bat %deven2008% %TargetDir1% %TargetDir% %LogFile%
echo 编译结束,当前路径 %cd%
echo 结束编译时间 %Date% %time%

echo
pause
具体项目文件
   
   
     
@echo off
:: 接收调用者传入的参数
:: 编译器路径
set buildTarget=% 1%
:: 需要编译目录
set  source=% 2%
:: 编译后拷贝路径
set target=% 3%
:: 日志路径
set  logFile=% 4%

echo  ===========开始编译 VideoPlay 项目===================

set  current=% source%\VideoPlay\
set targetNew=%target%\VideoPlay\
pushd % current%
    %buildTarget% VideoPlay.sln / rebuild  "RELEASE|Win32" / out % logFile
    copy % current%\ bin\VideoPlay.exe %targetNew%\ bin\
popd 

echo  ===========编译完成 VideoPlay demo===================
以上脚本部分符号解释如下:

::    英文双冒号是注释作用,也可以用REM 后加注释内容。
@     显示当前命令不要在控制台输出回显。如@echo off 关闭所有命令输出的回显。
set   设置变量,后续引用,需要用 %变量% 这种形式。
call  启动批处理文件,可以实现传参。传入的参数在被调用文件中以%1%、 %2%等依次接收。
pushd 切换到后面的路径下。
popd  退出切换后的路径,返回到之前的原始路径。
特别提醒:批处理文件中一段字符串中切记不能出现空格,有空格就会被解析为两段字符串。

介绍完博主的批处理文件,这里只涉及了几个简单的批处理命令,还有很多很多,比如编译完成后打包压缩发布等一系列流程,都可以使用批处理搞定。博主后续整理了常用的批处理命令,同样以思维导图的形式发出来,方便大家参考学习。


其他命令

以下命令总结自网络,大多数在博主自己计算机上测试过了,有需要的可以看看。
   
   
     
ver 在DOS窗口下显示版本信息 
winver 弹出一个窗口显示版本信息(内存大小、系统版本、补丁版本、计算机名) 
format 盘符 /FS:类型 格式化磁盘,类型:FAT、FAT32、NTFS ,例:Format D: /FS:NTFS
md 目录名 创建目录 
replace 源文件 要替换文件的目录 替换文件 
ren 原文件名 新文件名 重命名文件名 
tree 以树形结构显示出目录,用参数-f 将列出第个文件夹中文件名称 
type 文件名 显示文本文件的内容 
more 文件名 逐屏显示输出文件 
doskey 要锁定的命令=字符
doskey 要解锁命令= 为DOS提供的锁定命令(编辑命令行,重新调用win2k命令,并创建宏)。如:锁定dir命令:doskey dir=entsky (不能用doskey dir=dir);解锁:doskey dir= 
taskmgr 调出任务管理器 
chkdsk /F D: 检查磁盘D并显示状态报告;加参数/f并修复磁盘上的错误 
tlntadmn telnt服务admn,键入tlntadmn选择 3,再选择 8,就可以更改telnet服务默认端口 23为其它任何端口 
exit 退出cmd.exe程序或目前,用参数/B则是退出当前批处理脚本而不是cmd.exe 
path 路径\可执行文件的文件名 为可执行文件设置一个路径。 
cmd 启动一个win2K命令解释窗口。参数:/eff、/en 关闭、开启命令扩展;更我详细说明见cmd /?
regedit /s 注册表文件名 导入注册表;参数/S指安静模式导入,无任何提示; 
regedit /e 注册表文件名 导出注册表 
cacls 文件名 参数 显示或修改文件访问控制列表(ACL)——针对NTFS格式时。参数:/D 用户名:设定拒绝某用户访问;/P 用户名:perm 替换指定用户的访问权限;/G 用户名:perm 赋予指定用户访问权限;Perm 可以是: N 无,R 读取, W 写入, C 更改(写入),F 完全控制;例:cacls D:\test.txt /D pub 设定d:\test.txt拒绝pub用户访问。 
cacls 文件名 查看文件的访问用户权限列表 
REM 文本内容 在批处理文件中添加注解 
netsh 查看或更改本地网络配置情况

批处理命令思维导图总结


本章节贴出部分总结的思维导图,鉴于篇幅关系,其他导图以资源的形式上传到博主资源下,免费下载,内含前面涉及的所有批处理脚本、思维导图原件、思维导图图片等,有需要的可以移步博主博文下载。


写在结尾

本文的创作灵感来自博主近期的项目需求,但是之前搞批处理时间比较久,之前的知识居然忘掉了,时间真是个可恶的人,带走了我的青春。
因此回过头来,又翻箱倒柜,找出之前的笔记,做完需求,顺便将笔记整理于此,如果你也在工作中遇到了相同的问题,可以借鉴解决,希望能帮到你。
如果对你有帮助,请点赞关注支持我,后续还会有更多干货输出;如果你在阅读中发现问题或者Bug,可以随时留言或私信我,我会及时更新,以便让更多需要的人受惠。万分感谢~
版权声明:本文为CSDN博主「造轮子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Marble_ccp/article/details/105028406
【End】

推荐阅读 
技术大佬的肺腑之言:“不要为了 AI 而 AI”!| 刷新 CTO
为什么许多程序员讨厌结对编程?
2019报告:AI程序员人才需求暴涨35倍!每10个公司就有6个人才缺口

大龄程序员都去哪?分享我身边的几个故事

Spark3.0发布了,代码拉过来,打个包,跑起来!| 附源码编译

业内最大的“空气币”——以太坊???

你点的每一个在看,我认真当成了喜欢
登录查看更多
0

相关内容

【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【干货书】现代数据平台架构,636页pdf
专知会员服务
250+阅读 · 2020年6月15日
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
139+阅读 · 2020年5月19日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
160+阅读 · 2020年5月14日
【资源】100+本免费数据科学书
专知会员服务
105+阅读 · 2020年3月17日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
后渗透利用msf关闭防火墙
黑白之道
8+阅读 · 2019年8月24日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
刚开始学编程?这几款小工具能让你事半功倍
码农日常工具推荐
架构文摘
4+阅读 · 2017年9月26日
一个人的企业安全建设之路
FreeBuf
5+阅读 · 2017年7月7日
Attend More Times for Image Captioning
Arxiv
6+阅读 · 2018年12月8日
Rapid Customization for Event Extraction
Arxiv
7+阅读 · 2018年9月20日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【干货书】现代数据平台架构,636页pdf
专知会员服务
250+阅读 · 2020年6月15日
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
139+阅读 · 2020年5月19日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
160+阅读 · 2020年5月14日
【资源】100+本免费数据科学书
专知会员服务
105+阅读 · 2020年3月17日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
相关资讯
后渗透利用msf关闭防火墙
黑白之道
8+阅读 · 2019年8月24日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
刚开始学编程?这几款小工具能让你事半功倍
码农日常工具推荐
架构文摘
4+阅读 · 2017年9月26日
一个人的企业安全建设之路
FreeBuf
5+阅读 · 2017年7月7日
Top
微信扫码咨询专知VIP会员