zoukankan      html  css  js  c++  java
  • Windows DOS命令批处理脚本

    批处理程序

    简单来说,批处理程序就是 Windows 自带的脚本,可以在 cmd | powershell 中直接运行,若写成文件,后缀为 .bat

    小知识

    1. cmd 与 powershel 不区分大小写
    2. 命令行的运算操作,类似于 PHP
    3. DOS 是磁盘操作系统;命令提示符是 DOS 系统的界面中输入 DOS 命令的提示位置;cmd 是系统运行其自带 DOS 的命令;cmd.exe 是一个 16 位的 DOS 应用程序
    4. PID 是 processid(进程号);IM 是 imaginename(映像名称)
    5. 在 .bat 文件开头加上 @echo off 代表不输出描述,比如 C:Users14805desktop>... 这样的描述不会输出,直接输出结果
    6. 设置变量 set a=10,输出变量 echo %a%,设置变量表达式 set /a b=%a%+1

    简单演示

    :: 两个冒号表示 cmd 的注释
    rem 也表示 cmd 的注释
    # 一个井号表示 powershell 的注释
    
    bat 文件内容:
    echo "Hello World!"
    pause
    
    cmd 运行指令:
    test.bat
    输出 "Hello World!"
    
    powershell 运行指令:
    .	est.bat
    输出 "Hello World!"
    

    覆盖与追加内容

    覆盖
    echo "hello world" > t.txt
    
    追加
    echo "hello world" >> t.txt
    
    查看内容
    type
    

    多命令运算

    短路
    ipconfig || net user
    从第一个执行,直到执行正确停止
    
    断路
    ipconfig && net user
    从第一个执行,直到执行错误停止
    

    net user

    查看所有用户
    net user
    
    查看帮助
    net user /?
    
    查看帮助完整版
    net user /help
    
    其他命令感觉有点危险,先不写了
    

    参数传递

    bat 文件内容:
    echo %1 %2
    
    poweshell 运行指令:
    .	est.bat Hello World!
    输出 Hello World!
    

    时间

    cmd 运行指令:
    年月日
    date
    输出 当前日期: 2021-09-27
    date /T
    输出 2021-09-27
    
    时分秒
    time
    输出 当前时间: 23:14:16.68
    time /T
    输出 23:14
    
    poweshell 运行指令:
    date
    输出 2021年9月27日 23:14:49
    

    call

    test.bat 文件内容:
    echo "Hello "
    call test2.bat
    
    test2.bat 文件内容:
    echo "Wordl!"
    
    poweshell 运行指令:
    .	est.bat
    输出 Hello World!
    

    tasklist | taskill

    获取当前状态运行进程的列表
    tasklist
    
    获取指定要连接的远程系统的 tasklist
    tasklist /S 192.168.0.1 /U admin /S password
    
    其他参数:/FI 用于筛选 /FO 输出指定格数
    tasklist /FI "PID eq 3232" /FO csv > a.csv
    
    taskkill 是关闭进程
    taskkill /IM notepad.exe
    

    tree

    文件生成树
    tree
    输出
    C:.
    ├───a
    ├───b
    └───c
    
    换一种文件生成树
    tree /A
    输出
    C:.
    +---a
    +---b
    ---c
    
    详细文件生成树
    tree /F
    输出
    C:.
    ├───a
    │       a.txt
    │
    ├───b
    └───c
    

    shutdown

    打开 GUI 执行远程主机关机的操作
    shutdown /i
    
    关闭本地主机
    shutdown /p
    

    at

    某个时间点执行某个作业
    at 21:56 "notepad.exe"
    
    删除某个作业
    at 2 /delete
    
    每天都在某个位置执行某个作业
    at 22:00 /every:M,T,W,Th,F,S,Su C:Users14805desktoppayload.exe
    

    set

    cmd 运行指令:
    显示当前环境变量
    set
    
    输出环境变量值
    echo %OS%
    输出 Windows_NT
    

    操作文件夹

    创建文件夹
    mkdir test
    md test
    
    重命名文件夹
    ren test test1
    
    将 a 文件夹中的文件复制到 b 文件夹
    copy a b
    
    删除文件夹
    rmdir test
    rd test
    
    删除文件
    del *.txt
    
    重命名文件
    move test.txt test1.txt
    
    移动文件
    move C:a	est.txt C:	est.txt
    

    循环结构

    1.
    if () else ()
    
    2.
    if (
    ) else (
    )
    
    3. 循环文件夹
    
    # for /d %%名称 in (路径/*) do 具体操作
    
    .bat文件内容:打印当前文件夹下的所有文件夹
    for /d %%a in (*) do echo %%a
    
    4.循环文件
    
    # for /r "目录文件" %%名称 in (匹配规则,例如 *.py) do 具体操作
    
    .bat文件内容:打印当前文件夹下的所有.py文件
    for /r "C:Users14805Desktopabc" %%a in (*.py) do echo %%a
    
    5.循环数字
    
    # for /L %%a in (start,step,end) do 具体操作
    
    .bat文件内容:ping 168.0.0.1 至 168.0.0.20(传入参数 %1 等于 168.0.0) 
    for /L %%a in (1,1,20) do ping %1.%%a
    
    6.循环文件中的内容
    
    # for /F %%a in (文件名) do 具体操作
    
    .bat文件内容:打印test.bat中的内容
    for /F %%a in (test.bat) do echo %%a
    

    常用快捷键

    清屏
    cls
    
    显示当前目录
    dir (cmd | powershell)
    ls (powershell)
    
    打开当前文件夹
    start .
    
    查找文件
    dir *.txt (cmd | powershell)
    
    显示当前路径
    pwd (powershell)
    
    喜欢划水摸鱼的废人
  • 相关阅读:
    from __future__ import *
    每日一题力扣102
    每日一题力扣228
    每日一题力扣409
    每日一题力扣135 分糖果 中级
    【K短路】牛慢跑
    【2021-06-12】只有团队作战,才能更好生存
    【2021-06-11】不怕事情被砸,就怕团队不愿意承压
    【2021-06-10】压力需主动承受,才能进步
    【2021-06-09】日记和睡觉治疗法
  • 原文地址:https://www.cnblogs.com/CourserLi/p/15344685.html
Copyright © 2011-2022 走看看