run.bat—打开百度

1
2
path=%path%; C:\Program Files (x86)\Internet Explorer\
start iexplore http://www.baidu.com

将c盘下所有文件名输出到a.txt中,如果没有a文件,则在bat同一目录下创建一个

1
dir c:\*.* >a.txt

执行另一个批处理文件

1
call c:\code\run.bat

echo回显

1
2
3
4
@echo off      表示在此语句后所有运行的命令都不显示命令行本身 
cd code 进入code文件夹
echo enter code directory 显示enter code directory
call run.bat

增加入参

1
2
3
@echo off
type %1
type %2

cmd为 run.bat a.txt b.txt
控制台会显示出a和b的文件内容

for循环的使用

1
2
3
bat脚本
@echo off
for %%t in (*.bat *.txt) do type %%t

注意1,打印的是bat和txt文件的内容
注意2,此bat放在需打印文件内容的文件一个目录层级下

1
2
@echo off
FOR /L %%i in (1,2,20) DO echo %%i

if/else判断语句的使用

1
2
3
4
5
6
7
bat脚本
@echo off
if {%1}=={%2} (
echo eq l.
) else (
echo not eq l.
)

cmd输入run.bat 1 2
结果为 not eq 1

在一个批处理文件内最多可以使用10个替换参数(%0到%9)

1
2
3
4
5
6
7
@echo off
if exist a.txt (
echo This is a.txt
type a.txt
)else (
echo a.txt missing.
)

判断当前目录下是否有a.txt

1
2
3
4
5
@ECHO OFF
IF EXIST D:\*.XLS () else (GOTO fail)
PAUSE
:fail
ECHO 没找到文件

删除文件

1
2
@echo off
del a.txt
1
2
> 注意:指定路径会删除该路径下所有文件
>

移动、拷贝文件、文件夹

1
2
3
4
5
6
@echo off
move c:\a.txt c:\code\a.txt

copy c:\code\a.txt c:\a.txt

rd c:\code\abc\abc REM 删除非空文件夹

GOTO语句

1
2
3
4
5
6
@ECHO OFF
GOTO SECOND
:FIRST
echo I AM FIRST
:SECOND
echo I AM SECOND

choice/errorlevel的用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off 
choice /C 123 /M "RUN1,RUN2,RUN3"
if errorlevel 3 goto RUN3
if errorlevel 2 goto RUN2
if errorlevel 1 goto RUN1

:RUN1
c:\code\RUN1
goto RUN3

:RUN2
c:\code\RUN2
goto RUN3

:RUN3
echo good bye

set

1
2
3
4
5
6
7
8
9
@echo off
set a=aa1bb1aa2bb2
echo %a%

set b=12
echo %b%

set /a c=39/10
echo %c%
1
2
3
4
5
6
7
@echo off
set p=aaa
if %p%==aaa (
echo %p%
set p=bbb
echo %p%
)

输出 aaa aaa

1
2
3
4
5
6
7
@echo off
set p=aaa
if %p%==aaa (
echo %p%
set /p p=bbb
echo %p%
)

输出 aaa bbb

1
2
3
echo %CD%                    #代表当前目录的字符串
echo %DATE% #当前日期
echo %TIME% #当前时间

从FTP下载文件

1
2
3
4
5
6
7
8
9
10
11
12
13
@echo open 10.86.56.6 >ftp.txt      rem ftp server ip

@echo user mos>>ftp.txt rem 用户名

@echo mos>>ftp.txt rem 密码

@echo cd test>>ftp.txt rem 文件路径

@echo get mw-license-switch-conffile.xml>>ftp.txt rem 文件名

@echo bye>>ftp.txt

ftp -i -n -s:ftp.txt rem 文件存放在脚本所在路径下

切换盘符

1
2
3
set current_dir=C:\Program Files\HaoZip    
pushd %current_dir%
echo %cd%

博客来源:https://www.cnblogs.com/laislabonita/p/7145731.html