好用的批处理

  • 定时停止服务,启动服务。

:start
sc stop "Service To Restart"
ping 127.1 -n 4 >nul
sc start "Service To Restart"
goto start

:start 是一个标识,声明以便在后面 goto start, 实现无限循环的效果。

ping 127.1 -n 4 >nul  睡眠4秒,避免操作过快。

ping 127.1 -n 4是调用ping命令, 127.1是本地回路,必定能ping通。 -n 4是指ping 4次。因为大约是1秒钟ping一次,所以有睡眠4秒的效果,如果时长需要修改,那就修改这个数字。

sc stop 停止服务 

sc start 启动服务

 

  • 定时杀掉进程。

:start
ping 127.1 -n 2 >nul
taskkill /F /IM notepad.exe
goto start

:start 是一个标识,声明以便在后面 goto start, 实现无限循环的效果。

ping 127.1 -n 4 >nul  睡眠4秒,避免操作过快。

ping 127.1 -n 4是调用ping命令, 127.1是本地回路,必定能ping通。 -n 4是指ping 4次。因为大约是1秒钟ping一次,所以有睡眠4秒的效果,如果时长需要修改,那就修改这个数字。

taskkill /F /IM notepad.exe 杀掉名称为 notepad.exe的进程。 /F 标识强制结束进程。 /IM imagename,需要终止的进程的映像名称。

 

  • 文件系统操作。

1.删除单个文件。

DEL /Q  /F "D:\dir\file_to_del.txt"

参数: /Q(quiet安静模式,不提示确认)  /F(force强制删除只读文件)  "D:\dir\file_to_del.txt"(路径用\分隔而不要用/,跟参数会混淆导致意料之外的情况)

 

2.删除某一种后缀的文件。

DEL /Q /F "D:\dir\*.txt"

D:\dir\ 目录下的所有.txt文件都被删除,D:\dir\目录下的子目录里的.txt文件不会删除

DEL /Q /F /S "D:\dir\*.txt"

参数:/S(subdir? 匹配到子目录,以及子目录的子目录...的文件都会删除)

D:\dir\ 目录下的所有.txt文件都被删除,D:\dir\目录下的子目录里的.txt文件也会删除。例如D:\dir\sub1\1.txt , D:\dir\sub2\2.txt 都会被删掉。

 

3.删除目录。

RD /Q "D:\dir"

参数: /Q(quiet安静模式,不提示确认)  ,只能删除一个空目录。

RD /Q /S "D:\dir"

参数: /Q(quiet安静模式,不提示确认)  /S(subdir?), 目录以及目录下的所有文件以及子目录都会被删除。

 

4.拷贝文件。

copy /Y "D:\A\x.txt" "D:\B\y.docx"

参数:/Y(目标文件存在时,不提示确认,批处理本就是为了自动完成还提示个毛线)。 把A目录下的 x.txt文件拷贝到B目录,并且修改名字以及后缀为y.docx。

copy /Y "D:\A\x.txt" "D:\B"

把A目录下的 x.txt文件拷贝到B目录,名字及后缀跟原来一致。

 

5.拷贝目录。

xcopy "D:\A" "D:\B" /Y /E /I

不存在就拷贝,存在就覆盖。

参数:/Y(不提示覆盖)  /E(复制目录以及子目录,包括空目录,如果不拷贝空的目录则用/S),/I(目标不存在,则假定目标是个目录,没有这个参数,目标目录不存在时,就会提问你目标是个目录还是文件) 。据说此命令还能用来拷贝文件,不研究了。

 

6.创建目录。

MD "D:\A"

在D盘下创建名字为A的目录。

 

7.更改文件名或者目录名。

REN(RENAME) "D:\A\x.txt" "y.docx"

把A目录下的x.txt 改成 y.docx

REN(RENAME) "D:\A\*.txt" "*.docx"

通配符把A目录下的所有.txt 改成.docx。A目录下的子目录的不会更改。

REN(RENAME) "D:\A" "B"

把A目录改名成B。从此D盘不再有A目录,原来A目录的所有内容都在B目录。

 

  • mklink命令。

有些工具特别是开发工具,要求安装在C盘,日子久了,C盘就会越来越满。mklink命令可以让你在C盘创建一个目录,但是这个目录占用的是D盘的空间。

举个例子, 解决"C:\Program Files (x86)\Microsoft SDKs" 占用C盘大量空间问题。

a.先把这个目录改个名字或者移动到其他地方。

b.在命令行运行 mklink /J "C:/Program Files (x86)/Microsoft SDKs" "D:/Microsoft SDKs", 这时候 "C:/Program Files (x86)/Microsoft SDKs"被创建出来,

   可当作正常的目录使用,在目录里的所有操作实际上实际上都是在"D:/Microsoft SDKs"。

c.把a中原来的"C:\Program Files (x86)\Microsoft SDKs"的所有内容都剪切到这个新建立的目录符号链接。

 

mklink命令用法:

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      创建目录符号链接。默认为文件
                符号链接。
        /H      创建硬链接而非符号链接。
        /J      创建目录联接。
        Link    指定新的符号链接名称。
        Target  指定新链接引用的路径
                (相对或绝对)。

 

/D 创建的目录或者文件的快捷方式, 目前没想到什么情况下用。

/J 创建的目录联接,这时创建出来的目录与真实的目录用起来没有区别。可以用来解决C盘空间不足,或者某些软件例如itunes目录固定不变,可通过这种方式来变换目录。

/H 创建硬连接,主要是针对文件。把两个文件关联在一起了,从此同生死共存亡,任意一个修改,另外一个相应地变化。这种行为感觉比较危险,哪天说不定不小心改了本没想改的文件,没想到什么情况下使用。

 

/D /J参数对比

mklink /d "D:\B\C" "C:\A"

mklink /j "D:\B\D" "C:\A"

上面两个命令分别创建了C 目录(/D参数)以及D 目录(/J参数)。两个目录都有快捷方式的标识。

 

进入C目录,创建test.txt文件。

然后发现D目录以及源头的A目录都出现了这个文件。

这样用起来,C和D用起来区别不大。

 

在属性上看,C和D的就有区别了,C就是快捷方式,D的属性看起来更像一个真实的目录。

 

另外如果我们在浏览网页或者使用一些其他软件,需要选择一个文件路径时。

 

选择了C目录以后,实际上是跳转到A目录了,再向上返回就退回到A目录那边。

 

当选择的路径是D目录时,D目录的表现就真的是一个目录。

总结: /D /J对比, /J在转换目录更真实好用一些。 /D用起来就像仅仅创建快捷方式。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值