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

 

 

 

 

 

posted @ 2015-10-06 15:25  学数学的程序猿  阅读(582)  评论(0编辑  收藏  举报