Windows 批处理
1. 引言
在Windows上,经常需要做一些重复的工作。比如在不同的工作场所需要切换不同的ip;比如有时需要对一堆文件按1~n进行重命名;再比如我们需要删除一大堆文件,这些文件名字都差不多,但不在同一个目录呆着…第一次可以忍忍,手动完成了,但次数多了,将会觉得特麻烦和无聊;于是开始用某种编程语言写程序来处理,比如java,c++等,但写完后才发现花的时间比手动处理还多…。这时候,一些简单的批处理命令,将会为带来无穷的便利。
写这篇博客的目的是因为不想花时间系统地去记忆这些批处理命令,因此每次遇到需要用到批处理的地方,就百度相关的语句,更新记录到这里。
当前更新于:2015年10月6日 14:25:18;
2. 语法
① 环境:在Windows下,写一个批处理程序很简单,在任何目录下,右键新建一个文本文档,打开编写代码后保存(注意编码,否则可能会乱码),再将该文件.txt后缀改为.bat后缀,双击即可运行。
② echo:打印。如:
echo hello world!
③ @:@加在某命令前表示不显示该命令。如:
@echo hello world!
④ echo off:该命令执行后,之后所有的命令都不会显示出来(相当于在之后的所有的命令前加了@,对自身无效)。
⑤ pause:暂停。按任意键后继续。
⑥ title:设置窗口标题。如:
title hello world
⑦ ::标签。配合goto使用。如:
:lable1
:::注释。如:
::这是一段注释
⑧ goto:转跳到某一标签。如:
goto :lable1
⑨ 设置IP:如:
Netsh interface IP Set Address "本地连接" Static 192.168.0.99 255.255.255.0 192.168.0.1 1
其中“本地连接”是你要设置的适配器的名字;后面的数字依次是ip、网关、子网掩码。
⑩ 设置DNS:如:
Netsh interface IP set dns "本地连接" static 192.168.0.1 primary
⑪ set/p xxx=:如:
@set /p var= @echo %var% @pause
意思是:接受键盘输入,并把输入值赋给var。其中%var%,表示引用var变量。
⑫ if 条件 (命令) else 命令,如:
@if 1==1 (echo 成立) else echo 不成立 @pause
3. 案例
① Hello World
@echo Hello World! @title hello world
@pause
② 一键填写ip(网关,子网掩码,DNS)
@echo off echo ==============一键填写IP============= title 一键填写IP set ip1=192.168.1.2 set ip2=172.16.42.254 echo 0:退出 echo 1:%ip1% echo 2:%ip2% set/p ip=请输入数字: if %ip%==0 goto :exit if %ip%==1 goto :ip1 if %ip%==2 goto :ip2 :ip1 echo 正在设置ip:%ip1% ... Netsh interface IP Set Address "本地连接" Static %ip1% 255.255.255.0 192.168.1.1 Netsh interface IP set dns "本地连接" static 222.246.129.81 primary echo 设置成功 goto :exit :ip2 echo 正在设置ip:%ip2% ... Netsh interface IP Set Address "本地连接" Static %ip2% 255.255.255.0 172.16.42.1 Netsh interface IP set dns "本地连接" static 222.246.129.81 primary echo 设置成功 goto :exit :exit echo bye pause exit