• 【Dos-BatchPrograming】05


    ——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编码进行输出的

    所以解决办法是要么更换文本编码,要么更换终端编码

  • 相关阅读:
    在asp.net实现文件下载
    Insus IO Utility
    Marquee无间隙滚动(二)
    Refactoring Parameter
    How do I filtered TextBox with a Decimal (double) Data Type
    创建自己的类库
    把选中Gridview的记录显示出来
    如何取得当前网页名称
    一位老程序员十年的职场感悟
    java 跳转语句
  • 原文地址:https://www.cnblogs.com/mindzone/p/14298193.html
Copyright © 2020-2023  润新知