zoukankan      html  css  js  c++  java
  • Windows 批处理脚本学习

    Windows Dos命令/批处理命令学习

    简化操作!

    bat脚本/批处理编程初入门

    • @echo off不显示盘符
    • pause输出后暂停不关闭窗口
    • 一般的脚本都要有这两句在开头和结尾

    批处理运算操作

    1. 执行算术运算 set /a 1+3 ** /a**代表算术运算

    2. 使用变量 echo %变量名%, 赋值变量 set 变量名=xxxx

    3. 重定向运算

      1. 相关符号>,>>,<,<<箭头方向代表位置 一个符号覆盖,两个符号追加

      2. echo "hello" > a.txt 会在所在目录下创建a.txt 并存入内容 hello

      3. type命令可以查看文本文件内容

    4. 多命令运算 && || 有短路效果

      1. &当第一条命令执行失败了,后边的命令继续执行
      2. &&当第一条命令失败时,后边的命令不继续执行了
      3. ||当第一条命令失败后才执行第二条命令
    5. 管道运算 |左边的输出结果将作为右边的命令输入 例:dir | find ".txt" 查找目录中txt后缀的文件 or netstat -an | find "ESTABLISHED"查找建立的链接状态为ESTABLISHED的记录

    批处理的基本命令

    1. 命令 + /? 查看帮助 /help 获取完整的帮助信息
    2. 文件参数传入 %num ,然后再调用1.bat 时带上参数 D:> a.bat xxx 相当于占位符
    3. 代码注释 rem xxxx
    4. color 命令设置颜色
    5. title 设置cmd.exe标题
    6. date or time 加上 /t 仅查看时间
    7. start “title" 启动新的命令行窗口 /B 隐藏执行新窗口
    8. call 调用bat文件
    9. tasklist查看任务 有各种参数和筛选器
    10. taskkill 根据PID或镜像名称来终止
    11. tree 文件结构树形查看
    12. shutdwon 关机 /i 展示GUI
    13. at 计划任务 win10已弃用

    文件相关

    1. dir 查看目录和文件
    2. mkdir = md [/s] [/q] [drive:] path 创建目录
    3. rmdir = rd 删除目录
    4. cd 进去某个目录
    5. ren 重命名目录
    6. copy 复制目录1的文件到目录2 里
    7. del 删除一个或多个文件
    8. move 移动文件或目录

    条件判断结构

    1. if %v%==hello (echo ok) else (echo no)

    2. exist是个关键字

      ![image-20201016123950014](C:UsersjojoDesktopmarkdownWindows Dos命令学习.assetsimage-20201016123950014.png)

    循环结构

    1. 命令行用单% 写到批处理所有单%要改成双%%
    2. for /d in (路径/*) do 具体操作
    3. for /r "目录路径" %%v in (匹配规则 例如*.txt) do 执行操作(文件)
    4. for /d %%a in (*) do if %%a==test rd %%a 删除test这个文件夹
    5. for /L %%a in (1,1,20) do echo "current: " %%a 遍历数字
    6. for /f %%a in (test01.bat) do echo %%a 遍历文件内容

    目录重复创建

    @echo off
    
    :loop
    md Virus
    cd Virus
    goto loop
    
    

    交互操作

    @echo off
    echo 1.a
    echo 2.b
    echo 3.c
    echo 4.d
    
    :main
    echo Enter you option:
    set /p opt=
    rem /p表示从标准输入当中获取对应的值保存到opt当中 
    if %opt%==1 goto one
    if %opt%==2 goto two
    if %opt%==3 goto three
    echo Invalid option
    goto main
    
    :one
    echo your choice  one
    pause>nul
    exit
    
    :two
    echo your choice  two
    pause>nul
    exit
    
    :three
    echo your choice  three
    pause>nul
    exit
    
    

    nul 部分用法

    用法1:2>nul

    2>nul 是屏蔽操作失败显示的信息,如果成功依旧显示。

    如:在批处理文件所在路径下md(或者mkdir)创建名为test的文件夹,当此文件夹已经创建时会报错。使用2>nul 可屏蔽此提示

    md test 2>nul

    用法2:>nul (即1>nul)

    >nul 是屏蔽操作成功显示的信息,但是出错还是会显示(即1>nul)

    上个命令的返回值

    一般"成功"用0 表示 "失败"用 1 表示

    可以使用%errorlevel%获取

    可以用来判断网络是否连接

    其他

    访问网址 start 也行

    explorer http://www.baidu.com
    

    打开文件夹 没有路径就打开cmd窗口

    start D:文件夹1
    

    打开文件

    start D:文件夹1	est.txt
    

    删除当前目录TEST文件夹下的所有.o文件

    del .TEST*.o
    

    修改文件扩展名,所有txt扩展名改为mp3扩展名

    ren *.txt *.mp3
    ren  *.gif *.jpg
    

    提取当前目录下扩展名为mp3的文件名,输出到mp3文件名.txt

    dir *.mp3 /b>mp3文件名.txt
    

    延迟5秒执行命令、程序。xp以上的系统可以用 timeout命令

    ping 127.1 -n 5 >nul
    

    启动mysql数据库,并打开命令行并执行指定sql里面的代码

    start "mysqld" "C:Program FilesMySQLMySQL Server 8.0inmysql.exe"
    ping 127.1 -n 5 >nul
    "C:Program FilesMySQLMySQL Server 8.0inmysql.exe" -uroot -proot <my.sql
    

    判断是否能访问油管

    ping www.youtube.com -n 1 >nul 2>nul && echo yes||echo no
    

    查询是否启用代理

    reg query "HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v ProxyEnable 
    rem 关闭系统代理
    rem reg add "HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
    rem reg add "HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v ProxyServer /d "" /f
    rem reg add "HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /v ProxyOverride /t REG_SZ /d 0 /f
    
    • sort命令按字母顺序排列文本文件或命令的输出
    • @符号是取消本行的输入显示 比如 @ping 127.0.0.1
    • %errorlevel%返回的是上一句的返回值

    相关参考

    https://deerchao.cn/tutorials/regex/regex.htm "正则表达式30分钟入门教程"
    https://www.bilibili.com/video/BV1Qv411q7bN "2020年最新Windows DOS命令批处理脚本学习"
    https://www.bilibili.com/video/BV1b5411473Y?p=16 "自动化脚本编程之CMD/DOS命令行与批处理入门到掌握全程课"
    http://www.bathome.net/ "批处理之家"

  • 相关阅读:
    POJ 3041 Asteroids 最小点覆盖 == 二分图的最大匹配
    POJ 3083 Children of the Candy Corn bfs和dfs
    POJ 2049 Finding Nemo bfs 建图很难。。
    POJ 2513 Colored Sticks 字典树、并查集、欧拉通路
    POJ 1013 Counterfeit Dollar 集合上的位运算
    POJ 2965 The Pilots Brothers' refrigerator 位运算枚举
    无聊拿socket写的100以内的加法考试。。。
    POJ 1753 Flip Game
    初学socket,c语言写的简单局域网聊天
    汇编语言 复习 第十一章 标志寄存器
  • 原文地址:https://www.cnblogs.com/somegenki/p/13828823.html
Copyright © 2011-2022 走看看