——1、分支判断
@echo off rem 样例 if %1 == 1 (echo the param is 1) else (echo the param is other char) pause
执行脚本:
Microsoft Windows [版本 10.0.19041.746] (c) 2020 Microsoft Corporation. 保留所有权利。 D:>if.bat 1 the param is 1 请按任意键继续. . . D:>if.bat 2 the param is other char 请按任意键继续. . . D:>
把 pause 写入一个nul空,可以让字符不再显示
pause > nul
关键字exist判断文件是否存在
@echo off rem 样例 if exist D:sqlyog esSQLyog.ico (echo exist) else (echo not found) pause > nul
如果文件存在就把它删除掉
@echo off if exist D:bb.txt ( echo file founded, executing delete... del D:bb.txt ) else ( echo file not found... ) pause > nul
——2、循环遍历
For的语法有点难理解
for /d 迭代的变量 in (循环遍历的条件) do 执行的事情
/d 是directory目录的意思
遍历指定路径下的所有目录,通配符*表示所有
@echo off for /d %%a in (D:dbeaver*) do echo %%a pause > nul
输出结果:
D:dbeaverconfiguration D:dbeaverfeatures D:dbeaverlicenses D:dbeaverp2 D:dbeaverplugins
可以看到明显是不包含文件的
遍历文件:
for /r 路径 变量 in (文件的筛选条件) do 要执行的事情
遍历刚刚的目录
@echo off for /r "D:dbeaver" %%f in (*) do echo %%f pause > nul
输出的内容过多可以写入文件中:
echo " " > aaa.txt for /r "D:dbeaver" %%f in (*) do echo %%f >> aaa.txt
只是遍历普通的数字:
for /L 变量 in (起始,步长,结束) do 具体操作
从1遍历到100,步长为1(每一次递进的值)
@echo off for /l %%n in (1, 1, 100) do echo %%n pause > nul
除此以外还可以遍历文件内容:
for /F %%c in (文件名称) do 执行的操作
首先随便找点文本内容丢进一个txt里面
新浪首页 新闻 体育 财经 娱乐 科技 博客 图片 专栏 更多 移动客户端 注册 登录 国内新闻>正文 请输入关键字 新闻 ***考察北京冬奥会、冬残奥会张家口赛区 2021年01月19日 18:20 央视 716 原标题:独家视频丨***考察北京冬奥会、冬残奥会张家口赛区 ***考察北京冬奥会、冬残奥会张家口赛区 19日,***总书记乘火车沿京张高铁抵达河北省张家口市,先后考察京张高铁太子城站、国家跳台滑雪中心、国家冬季两项中心,看望慰问运动员、教练员和张家口赛区运行保障团队、建设者代表。 责任编辑:赖柳华 SN244 我要反馈 新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 通行证注册 | 产品答疑 Copyright © 1996-2021 SINA Corporation, All Rights Reserved 新浪公司 版权所有 新浪首页 精彩直播 全网热点 视频热榜 社会直击 扫码下载 新浪新闻APP
脚本代码:
@echo off for /f %%c in (news.txt) do echo %%c pause > nul
程序输出:
鏂版氮棣栭〉 鏂伴椈 浣撹偛 璐㈢粡 濞变箰 绉戞妧 鍗氬� 鍥剧墖 涓撴爮 鏇村� 绉诲姩瀹㈡埛绔? 娉ㄥ唽 鐧诲綍 鍥藉唴鏂伴椈>姝f枃 璇疯緭鍏ュ叧閿�瓧 鏂伴椈 涔犺繎骞宠€冨療鍖椾含鍐�ゥ浼氥€佸啲娈嬪ゥ浼氬紶瀹跺彛璧涘尯 2021骞?1鏈?9鏃?18:20 716 銆€銆€鍘熸爣棰橈細鐙��瑙嗛�涓ㄤ範杩戝钩鑰冨療鍖椾含鍐�ゥ浼氥€佸啲娈嬪ゥ浼氬紶瀹跺彛璧涘尯 涔犺繎骞宠€冨療鍖椾含鍐�ゥ浼氥€佸啲娈嬪ゥ浼氬紶瀹跺彛璧涘尯 銆€銆€19鏃ワ紝涔犺繎骞虫€讳功璁颁箻鐏�溅娌夸含寮犻珮閾佹姷杈炬渤鍖楃渷寮犲�鍙e競锛屽厛鍚庤€冨療浜�紶楂橀搧澶�瓙鍩庣珯銆佸浗瀹惰烦鍙版粦闆�腑蹇冦€佸浗瀹跺啲瀛d袱椤逛腑蹇冿紝鐪嬫湜鎱伴棶杩愬姩鍛樸€佹暀缁冨憳鍜屽紶瀹跺彛璧涘尯杩愯�淇濋殰鍥㈤槦銆佸缓璁捐€呬唬琛ㄣ€? 璐d换缂栬緫锛氳禆鏌冲崕 鎴戣�鍙嶉� 鏂版氮绠€浠?| Copyright 鏂版氮鍏�徃 鏂版氮棣栭〉 绮惧僵鐩存挱 鍏ㄧ綉鐑�偣 瑙嗛�鐑�� 绀句細鐩村嚮 鎵�爜涓嬭浇 鏂版氮鏂伴椈APP
乱码是因为默认字符编码UTF-8,但是终端按照GBK编码进行输出的
所以解决办法是要么更换文本编码,要么更换终端编码