批处理的学习

        以前的时候就觉得批处理非常的神奇,还借过一本批处理的小书来看,很不幸的,没学下去,看没多久就看不下去了.来公司这段时间,经常干一些重复性的事,所以就想用批处理来完成.但是吧,断断续续,看了很长一段时间,好不容易才把一个57KB大小的chm给看完.内容不多,只能够简单的学习一些比较常见的用法.想着好不容易才看完,不写点东西,怎么对得起学的批处理.所以就写了一些简单的操作.

       我最频繁的操作莫过于,每天在家时Kill SqlServer的一系列进程,以及在公司的时候Kill一些Oracle的进程,因为用不到,他们占内存又太大了.使用的语句就是taskkill,关闭进程;taskkill /im 进程显示名,或者加上/f表示强制关闭进程,或者/im pid,指定要终止的进程的PID.

        所以写了如下的语句,@echo off是用来控制关闭回显,echo可以显示提示信息,rem用来注释,taskkill关闭进程,/f表示强制,SqlServer的基本都要求强制关闭,否则关闭不了.关闭指定的PID,对于fdlauncher.exe刚刚他的PID1664,下次就不一定是什么了.所以如果用PID,多次执行,很容易提示找不到这个PID.Pause,就是那句"请按任意键继续….".

@echo off
echo 关闭SqlServer的进程
rem SQL Full Texthost
taskkill /f /imfdhost.exe        
rem SQL Full-textFilter Daemon Launch Service
rem taskkill /im fdlauncher.exe
taskkill/f /im 1664
rem SQL Server VSSWriter
taskkill/f /im sqlwriter.exe 
rem  SQL Server Windows NT
taskkill /f /imsqlservr.exe
rem SQL ServerIntegration Services  Service
taskkill /f /imMsdtsSrvr.exe      
Pause

         效果就是如下,因为执行了多次,所以很多进程已经被结束掉了,所以提示找不到进程.


          还有就是选择语句,如果在公司是执行这段,在家里是执行这段.set /pvar = ,表示需要在命令窗口输入值,输入的值就赋给var,如输入1,var1;所以下面判断%var%是否等于1,等于1goto home,等于2goto company.对于取得变量var的值,必须用%var%.

@echo off
echo 1.home2.company
set /p var=
if %var% equ 1 gotohome
if %var% equ 2 gotocompany
 
:home
上面那段代码
 
:company
rem***
Pause

         运行效果就是这样,中间的代码省了,省的写的重复.


         还有比较常用的就是打开文件夹的语句,使用开启命令,start文件路径.很简单的,如下,就能打开E盘下的批处理文件夹.

Start E:\批处理
Pause

          除了打开文件夹的语句,就是复制粘贴的语句用的最多.具体需要做的就是,如将D盘下的文件夹abc(都叫这个名),备份到F盘的备份下.备份要做的就是将abc放在一个新建的文件夹下,这个文件夹一定要根据日期命名,20140730abc).语句如下

         由于D:\abcF:\备份都是已经存在的,所以需要新建,不想手动新建也可以用md新建.      

@echo off
rem 新建文件夹和文件
rem mdd:\abc\abcd  
rem echo test>>d:\abc\test.txt
rem md f:\备份
rem 新建备份的文件,根据日期命名
set var=f:\备份\%date:~0,4%%date:~5,2%%date:~8,2%abc\abc
md %var%
rem 打开文件
Start d:\abc
Start %var%
rem 拷贝文件夹
xcopy /s /e /h  d:\abc %var%
Pause

        从上到下依次说明,使用md可以新建文件夹,md + 路径,可以是相对路径,也可以是绝对路径;echo test >>d:\abc\test.txt可以创建test.txt文件,并且写入往里写了test,>>表示不会覆盖,会往文本里接着添加.set设置变量var,把路径生成好,由于需要生成20140730这种,所以将年月日依次取出,组合.%date:~0,4%,取出年;然后用start可以打开文件.最后就是xcopy的拷贝文件夹,xcopy /s /e /h  d:\abc  %var%,从左到右读,拷贝d盘的abc文件夹到指定目录下.由于xcopy只能将abc下的所有内容拷到f盘下,但是abc本身不会拷过去,所以新建的时候我将abc文件夹也创建进去了,这样dabc下的所有文件就会在f盘的abc下了,就相当于我把abc整个文件夹拷了过去./s表示拷贝文件夹中所有非空的目录和子目录,/e会把空目录也拷过去,/h会把隐藏文件和系统文件拷过去,还有/y,当文件存在的时候,可以直接覆盖不提示,但是我怕出错,万一直接覆盖错了怎么办?所以还是没有用.

          运行效果如下


        以上就是我对批处理的简单应用,还算是比较实用的.但是这只是简单的应用,还有很多没有考虑到,比如我打开了文件夹是想查看,省的出错,但是打开的文件夹还要我一一关闭,有些麻烦.还有就是比如我的创建文件夹,如果今天一天要拷贝2,那么第二个文件夹该如何命名,这个会覆盖肯定不对;还有我的操作其实是远程操作的时候,有的时候是从我本地拷到远程,有的时候是从远程拷到我本地,还有的时候是从远程拷到远程,这个该如何实现.呵呵,其实我也不知道,如果我解决了,会写下下一篇博客的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Windows批处理学习是指学习如何使用Windows中的批处理文件来进行一系列命令的批量处理操作。批处理文件以.bat为后缀,其中预先编写了一系列的DOS命令,当打开批处理文件时,会自动打开cmd窗口并执行文件中的命令。 批处理是一种实现批量处理操作的脚本文件,它与PS批处理(基于PhotoShop图片编辑软件的一种批处理脚本)是不同的,我们这里主要讨论的是DOS批处理。 在学习Windows批处理时,需要了解批处理的特点。批处理实质上是由一个或多个DOS命令组成的文件,因此在编写批处理脚本时,它的特点与MS-DOS命令基本一致。批处理脚本可以用于实现批量操作,例如批量重命名文件、批量复制文件等。 通过学习Windows批处理,你可以提高工作效率,自动化执行一系列命令,同时也可以减少重复劳动。你可以学习如何编写批处理脚本、如何调用并执行脚本以及如何处理不同的命令和参数。这些知识会帮助你更好地利用Windows系统中的批处理功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Windows系统批处理学习笔记①](https://blog.csdn.net/weixin_44595637/article/details/126925076)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Windows批处理学习(二)——批处理(1)](https://blog.csdn.net/weixin_34051201/article/details/92882840)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值