🤖
BOKE
  • 😇一个博客
  • Group 1
    • 🚗ALL
      • 😁一文搞懂Yum命令:红帽系的包管理器
      • 😆到底什么是云计算
      • 😅反弹Shell大全与原理
      • 😂SHELL基础
      • 🤣iptables
      • ☺️阿里云YUM源
      • 😉CentOS系统版本升级
      • 🥲bat笔记
      • 😍ELK
      • 🥰黑马k8s
      • 😋supervisor
      • 🤨Bash 中的 ${} 和 $() 有什么区别
      • 🧐ansible+playbook
      • 👍给ELK的kibana设置密码
      • 😁prometheus
      • 😃Linux或Windows上实现端口映射
      • 😄shell脚本大全
      • 🤪linux修改网卡名
      • 😆Openvpn问题导致我掉了三根头发
      • 😅Iptables实现阿里云NAT网关效果
    • 🚕docker
      • 😇docker搭建MySQL主从
      • 😊docker命令
      • 🙂docker文件分层与数据挂载
      • 🙃dockerfile
      • 😘B站狂神-docker
    • 🚙DevOps
      • 😌DevOps(Git+Jenkins)
      • 😛python配置git
由 GitBook 提供支持
在本页
  • 第一天
  • 第二天
  • 第三天

这有帮助吗?

  1. Group 1
  2. ALL

bat笔记

:::info{title="相关信息"} 只有一小部分,如果你的工作系统是windows的话,推荐去学Powershell :::

第一天

1、命令格式

​

@echo off	::取消显示cmd界面路径
cls			::清屏
chcp 65001	::使用中文输出
net user	::用户管理命令	详细用法 cmd界面输入:net user /help
%1	::第一个位置变量 %2 %3 ………以此类推
echo %1		::输出第一个位置变量值
pause		::请按任意键结束……
title USERADD		::cmd命令窗口标题为USERADD
date /t		::显示当前日期 格式为2022/12/03 周六 #不加/t是修改日期
time /t		::显示当前时间 格式为 12:34	#同上,不加/t是修改时间
start		::启动一个新的cmd界面,start "new cmd" 这样新开的cmd标题就会是new cmd
start test.bat username password 	::使用test.bat新启动一个cmd,并且会加两个位置变量
call name.bat	::运行另一个批处理

第二天

1、列出系统进程 tasklist

tasklist	::相当于ps,列出任务信息以及pid
详细参数使用tasklist /? 列出详细信息

······································································································
F:\桌面>tasklist /?

TASKLIST [/S system [/U username [/P [password]]]]
         [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]
描述:
    该工具显示在本地或远程机器上当前运行的进程列表。
参数列表:
   /S     system           指定连接到的远程系统。
   /U     [domain\]user    指定应该在哪个用户上下文执行这个命令。
   /P     [password]       为提供的用户上下文指定密码。如果省略,则
                           提示输入。
   /M     [module]         列出当前使用所给 exe/dll 名称的所有任务。
                           如果没有指定模块名称,显示所有加载的模块。
   /SVC                    显示每个进程中主持的服务。
   /APPS 显示 Microsoft Store 应用及其关联的进程。
   /V                      显示详细任务信息。
   /FI    filter           显示一系列符合筛选器
                           指定条件的任务。
   /FO    format           指定输出格式。
                           有效值: "TABLE"、"LIST"、"CSV"。
   /NH                     指定列标题不应该
                           在输出中显示。
                           只对 "TABLE" 和 "CSV" 格式有效。
   /?                      显示此帮助消息。
筛选器:
    筛选器名称     有效运算符           有效值
    -----------     ---------------           --------------------------
    STATUS          eq, ne                    RUNNING | SUSPENDED
                                              NOT RESPONDING | UNKNOWN
    IMAGENAME       eq, ne                    映像名称
    PID             eq, ne, gt, lt, ge, le    PID 值
    SESSION         eq, ne, gt, lt, ge, le    会话编号
    SESSIONNAME     eq, ne                    会话名称
    CPUTIME         eq, ne, gt, lt, ge, le    CPU 时间,格式为
                                              hh:mm:ss。
                                              hh - 小时,
                                              mm - 分钟,ss - 秒
    MEMUSAGE        eq, ne, gt, lt, ge, le    内存使用(以 KB 为单位)
    USERNAME        eq, ne                    用户名,格式为
                                              [域\]用户
    SERVICES        eq, ne                    服务名称
    WINDOWTITLE     eq, ne                    窗口标题
    模块         eq, ne                    DLL 名称

注意: 当查询远程计算机时,不支持 "WINDOWTITLE" 和 "STATUS"
      筛选器。

Examples:
    TASKLIST
    TASKLIST /M
    TASKLIST /V /FO CSV
    TASKLIST /SVC /FO LIST
    TASKLIST /APPS /FI "STATUS eq RUNNING"
    TASKLIST /M wbem*
    TASKLIST /S system /FO LIST
    TASKLIST /S system /U 域\用户名 /FO CSV /NH
    TASKLIST /S system /U username /P password /FO TABLE /NH
    TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"
·····································································································

1、按照服务状态进行过滤
tasklist /fi "status {eq/ne} {服务状态}"
例:列出所有正在运行的服务
F:\桌面>tasklist /fi "status eq running"
映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
csrss.exe                     1236 Console                    1      7,400 K
dwm.exe                       1780 Console                    1    121,468 K
NVDisplay.Container.exe       3840 Console                    1     49,936 K
……………………


2、按照pid号进行查询
tasklist /fi "pid {eq/ne} {pidnum}"
例:列出pid等于9908的服务
F:\桌面>tasklist /fi "pid eq 9648"
映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
svchost.exe                   9648 Services                   0      6,960 K


3、按照映像名称插叙
tasklist /fi "imagename {eq/ne} {映像名称}"
例:列出映像名叫cmd.txt的信息
F:\桌面>tasklist /fi "imagename eq cmd.exe"
映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
cmd.exe                      19488 Console                    1      6,708 K


4、查看远程主机的进程信息
tasklist /s {IP} /u {UAERNAME} /p {PASSWORD}
例:tasklist /s 192.168.44.229 /u test /p 123@.com

2、查看系统信息 systeminfo

systeminfo	::列出系统基本信息

用法如下 systeminfo /?
········································································································
F:\桌面>systeminfo /?
SYSTEMINFO [/S system [/U username [/P [password]]]] [/FO format] [/NH]
描述:
    该工具显示本地或远程机器(包括服务包级别)的操作系统配置的信息。
参数列表:
    /S      system           指定要连接的远程系统。
    /U      [domain\]user    指定应该在哪个用户上下文执行命令。
    /P      [password]       指定给定用户上下文的密码。如果省略则
                             提示输入。
    /FO     format           指定显示结果的格式。
                             有效值: "TABLE"、"LIST"、"CSV"。
    /NH                      指定“列标题”不应该在输出中显示。
                             只对 "TABLE" 和 "CSV" 格式有效。
    /?                       显示帮助消息。
例如:
    SYSTEMINFO
    SYSTEMINFO /?
    SYSTEMINFO /S system
    SYSTEMINFO /S system /U user
    SYSTEMINFO /S system /U domain\user /P password /FO TABLE
    SYSTEMINFO /S system /FO LIST
    SYSTEMINFO /S system /FO CSV /NH
····································································································

3、杀死进程 taskkill

taskkill	::杀死进程	用法: taskkill /?
········································································································
E:\桌面>taskkill /?
TASKKILL [/S system [/U username [/P [password]]]]
         { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]         
描述:
    使用该工具按照进程 ID (PID) 或映像名称终止任务。
参数列表:
    /S    system           指定要连接的远程系统。
    /U    [domain\]user    指定应该在哪个用户上下文执行这个命令。
    /P    [password]       为提供的用户上下文指定密码。如果忽略,提示
                           输入。
    /FI   filter           应用筛选器以选择一组任务。
                           允许使用 "*"。例如,映像名称 eq acme*
    /PID  processid        指定要终止的进程的 PID。
                           使用 TaskList 取得 PID。
    /IM   imagename        指定要终止的进程的映像名称。通配符 '*'可用来
                           指定所有任务或映像名称。
    /T                     终止指定的进程和由它启用的子进程。
    /F                     指定强制终止进程。
    /?                     显示帮助消息。
筛选器:
    筛选器名      有效运算符                有效值
    -----------   ---------------           -------------------------
    STATUS        eq, ne                    RUNNING |
                                            NOT RESPONDING | UNKNOWN
    IMAGENAME     eq, ne                    映像名称
    PID           eq, ne, gt, lt, ge, le    PID 值
    SESSION       eq, ne, gt, lt, ge, le    会话编号。
    CPUTIME       eq, ne, gt, lt, ge, le    CPU 时间,格式为
                                            hh:mm:ss。
                                            hh - 时,
                                            mm - 分,ss - 秒
    MEMUSAGE      eq, ne, gt, lt, ge, le    内存使用量,单位为 KB
    USERNAME      eq, ne                    用户名,格式为 [domain\]user
    MODULES       eq, ne                    DLL 名称
    SERVICES      eq, ne                    服务名称
    WINDOWTITLE   eq, ne                    窗口标题

    说明
    ----
    1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。
    2) 远程进程总是要强行 (/F) 终止。
    3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。

例如:
    TASKKILL /IM notepad.exe
    TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
    TASKKILL /F /IM cmd.exe /T
    TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
    TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
    TASKKILL /S system /U 域\用户名 /FI "用户名 ne NT*" /IM *
    TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"
········································································································

1、杀掉进程名为notepad.exe的进程
taskkill /fi "imagename eq notepad.exe"
taskkill /im notepad*
taskkill /pid {进程的pid号}
#/fi和/im 后面填写的进程名都可以使用*作为通配符

2、强制杀cmd.exe进程以及他的子进程	强制杀死进程:/f	杀子进程:/t
taskkill /f /im cmd.* /t

4、目录树命令 tree

tree 以树状图显示目录及文件
·········································································································
E:\>tree /?
以图形显示驱动器或路径的文件夹结构。
TREE [drive:][path] [/F] [/A]
   /F   显示每个文件夹中文件的名称。
   /A   使用 ASCII 字符,而不使用扩展字符。
·········································································································

1、显示C:/windwos目录下的目录结构
tree C:/windows

2、显示目录下的目录结构及文件
tree C:/windows /f

5、关机命令 shutdown

shutdown 操作计算机的电源
···········································································································
E:\>shutdown /?
用法: shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f]
    [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]

    没有参数   显示帮助。这与键入 /? 是一样的。
    /?         显示帮助。这与不键入任何选项是一样的。
    /i         显示图形用户界面(GUI)。
               这必须是第一个选项。
    /l         注销。这不能与 /m 或 /d 选项一起使用。
    /s         关闭计算机。
    /sg        关闭计算机。在下一次启动时,如果启用了
               自动重启登录,则将自动登录并锁定上次交互用户。
               登录后,重启任何已注册的应用程序。
    /r         完全关闭并重启计算机。
    /g         完全关闭并重启计算机。重新启动系统后,
               如果启用了自动重启登录,则将自动登录并
               锁定上次交互用户。
               登录后,重启任何已注册的应用程序。
    /a         中止系统关闭。
               这只能在超时期间使用。
               与 /fw 结合使用,以清除任何未完成的至固件的引导。
    /p         关闭本地计算机,没有超时或警告。
               可以与 /d 和 /f 选项一起使用。
    /h         休眠本地计算机。
               可以与 /f 选项一起使用。
    /hybrid    执行计算机关闭并进行准备以快速启动。
               必须与 /s 选项一起使用。
    /fw        与关闭选项结合使用,使下次启动转到
               固件用户界面。
    /e         记录计算机意外关闭的原因。
    /o         转到高级启动选项菜单并重新启动计算机。
               必须与 /r 选项一起使用。
    /m \\computer 指定目标计算机。
    /t xxx     将关闭前的超时时间设置为 xxx 秒。
               有效范围是 0-315360000 (10 年),默认值为 30。
               如果超时期限大于 0,则 /f 参数为
               /f 参数。
    /c "comment" 注释重启或关闭的原因。
               最多允许 512 个字符。
    /f         强制关闭正在运行的应用程序而不事先警告用户。
               当大于 0 的值为
 时,隐含 /f 参数               则默示为 /f 参数。
    /d [p|u:]xx:yy  提供重新启动或关闭的原因。
               p 指示重启或关闭是计划内的。
               u 指示原因是用户定义的。
               如果未指定 p 和 u,则
重新启动或关闭               是计划外的。
               xx 是主要原因编号(小于 256 的正整数)。
               yy 是次要原因编号(小于 65536 的正整数)。

此计算机上的原因:
(E = 预期 U = 意外 P = 计划内,C = 自定义)
类别    主要    次要    标题

 U      0       0       其他(计划外)
E       0       0       其他(计划外)	………………………………
···········································································································

1、

6、任务计划命令 schtasks (没学会)

schtasks ::和linux中的crontab类似
········································································································
用法:schtasks /?
C:\Windows\System32>schtasks.exe /?
SCHTASKS /parameter [arguments]
描述:
    允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任
    务。
参数列表:
    /Create         创建新计划任务。
    /Delete         删除计划任务。
    /Query          显示所有计划任务。
    /Change         更改计划任务属性。
    /Run            按需运行计划任务。
    /End            中止当前正在运行的计划任务。
    /ShowSid        显示与计划的任务名称相应的安全标识符。
    /?              显示此帮助消息。
Examples:
    SCHTASKS
    SCHTASKS /?
    SCHTASKS /Run /?
    SCHTASKS /End /?
    SCHTASKS /Create /?
    SCHTASKS /Delete /?
    SCHTASKS /Query  /?
    SCHTASKS /Change /?
    SCHTASKS /ShowSid /?
··········································································································

1、

7、变量 set

set 显示和设置变量值 
用法:
·········································································································
C:\Windows\System32>set /?
显示、设置或删除 cmd.exe 环境变量。
SET [variable=[string]]
  variable  指定环境变量名。
  string    指定要指派给变量的一系列字符串。
要显示当前环境变量,键入不带参数的 SET。
如果命令扩展被启用,SET 会如下改变:
可仅用一个变量激活 SET 命令,等号或值不显示所有前缀匹配
SET 命令已使用的名称的所有变量的值。例如:
    SET P
会显示所有以字母 P 打头的变量
如果在当前环境中找不到该变量名称,SET 命令将把 ERRORLEVEL
设置成 1。
SET 命令不允许变量名含有等号。
在 SET 命令中添加了两个新命令行开关:
    SET /A expression
    SET /P variable=[promptString]
/A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式
评估器很简单并以递减的优先权顺序支持下列操作:
    ()                  - 分组
    ! ~ -               - 一元运算符
    * / %               - 算数运算符
    + -                 - 算数运算符
    << >>               - 逻辑移位
    &                   - 按位“与”
    ^                   - 按位“异”
    |                   - 按位“或”
    = *= /= %= += -=    - 赋值
      &= ^= |= <<= >>=
    ,                   - 表达式分隔符
    
如果你使用任何逻辑或取余操作符, 你需要将表达式字符串用
引号扩起来。在表达式中的任何非数字字符串键作为环境变量
名称,这些环境变量名称的值已在使用前转换成数字。如果指定
了一个环境变量名称,但未在当前环境中定义,那么值将被定为
零。这使你可以使用环境变量值做计算而不用键入那些 % 符号
来得到它们的值。如果 SET /A 在命令脚本外的命令行执行的,
那么它显示该表达式的最后值。该分配的操作符在分配的操作符
左边需要一个环境变量名称。除十六进制有 0x 前缀,八进制
有 0 前缀的,数字值为十进位数字。因此,0x12 与 18 和 022
相同。请注意八进制公式可能很容易搞混: 08 和 09 是无效的数字,
因为 8 和 9 不是有效的八进制位数。(& )

/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入
行之前,显示指定的 promptString。promptString 可以是空的。

环境变量替换已如下增强:

    %PATH:str1=str2%

会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。
要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。
"str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的
开始到 str1 剩余部分第一次出现的地方,都一直保持相配。

也可以为扩展名指定子字符串。
    %PATH:~10,5%
会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏
移量 10)字符开始的五个字符。如果没有指定长度,则采用默认
值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,
使用的数字则是环境变量数值长度加上指定的偏移量或长度。
    %PATH:~-10%
会提取 PATH 变量的最后十个字符。
    %PATH:~0,-2%
会提取 PATH 变量的所有字符,除了最后两个。
终于添加了延迟环境变量扩充的支持。该支持总是按默认值被
停用,但也可以通过 CMD.EXE 的 /V 命令行开关而被启用/停用。
请参阅 CMD /?
考虑到读取一行文本时所遇到的目前扩充的限制时,延迟环境
变量扩充是很有用的,而不是执行的时候。以下例子说明直接
变量扩充的问题:
    set VAR=before
    if "%VAR%" == "before" (
        set VAR=after
        if "%VAR%" == "after" @echo If you see this, it worked
    )
不会显示消息,因为在读到第一个 IF 语句时,BOTH IF 语句中
的 %VAR% 会被代替;原因是: 它包含 IF 的文体,IF 是一个
复合语句。所以,复合语句中的 IF 实际上是在比较 "before" 和
"after",这两者永远不会相等。同样,以下这个例子也不会达到
预期效果:
    set LIST=
    for %i in (*) do set LIST=%LIST% %i
    echo %LIST%
原因是,它不会在目前的目录中建立一个文件列表,而只是将
LIST 变量设成找到的最后一个文件。这也是因为 %LIST% 在
FOR 语句被读取时,只被扩充了一次;而且,那时的 LIST 变量
是空的。因此,我们真正执行的 FOR 循环是:

    for %i in (*) do set LIST= %i

这个循环继续将 LIST 设成找到的最后一个文件。

延迟环境变量扩充允许你使用一个不同的字符(惊叹号)在执行
时间扩充环境变量。如果延迟的变量扩充被启用,可以将上面
例子写成以下所示,以达到预期效果:

    set VAR=before
    if "%VAR%" == "before" (
        set VAR=after
        if "!VAR!" == "after" @echo If you see this, it worked
    )

    set LIST=
    for %i in (*) do set LIST=!LIST! %i
    echo %LIST%

如果命令扩展被启用,有几个动态环境变量可以被扩展,但不会出现在 SET 显示的变
量列表中。每次变量数值被扩展时,这些变量数值都会被动态计算。如果用户用这些
名称中任何一个明确定义变量,那个定义会替代下面描述的动态定义:

%CD% - 扩展到当前目录字符串。
%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。
%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。
%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。
%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。
%CMDEXTVERSION% - 扩展到当前命令处理器扩展版本号。
%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。
%HIGHESTNUMANODENUMBER% - 扩展到此计算机上的最高 NUMA 节点号。
········································································································

8、文件查看命令 dir

dir	查看文件的命令
·································································
C:\Windows\System32>dir /?
显示目录中的文件和子目录列表。

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

  [drive:][path][filename]
              指定要列出的驱动器、目录和/或文件。

  /A          显示具有指定属性的文件。
  属性         D  目录                R  只读文件
               H  隐藏文件            A  准备存档的文件
               S  系统文件            I  无内容索引文件
               L  重新分析点          O  脱机文件
               -  表示“否”的前缀
  /B          使用空格式(没有标题信息或摘要)。
  /C          在文件大小中显示千位数分隔符。这是默认值。用 /-C 来
              禁用分隔符显示。
  /D          跟宽式相同,但文件是按栏分类列出的。
  /L          用小写。
  /N          新的长列表格式,其中文件名在最右边。
  /O          用分类顺序列出文件。
  排列顺序     N  按名称(字母顺序)     S  按大小(从小到大)
               E  按扩展名(字母顺序)   D  按日期/时间(从先到后)
               G  组目录优先           -  反转顺序的前缀
  /P          在每个信息屏幕后暂停。
  /Q          显示文件所有者。
  /R          显示文件的备用数据流。
  /S          显示指定目录和所有子目录中的文件。
  /T          控制显示或用来分类的时间字符域
  时间段      C  创建时间
              A  上次访问时间
              W  上次写入的时间
  /W          用宽列表格式。
  /X          显示为非 8dot3 文件名产生的短名称。格式是 /N 的格式,
              短名称插在长名称前面。如果没有短名称,在其位置则
              显示空白。
  /4          以四位数字显示年份

可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
来替代预先设定的开关。例如,/-W。
·································································

1、显示目录下的
隐藏文件
dir E:\工作 /ah
目录文件
dir E:\工作 /ad
只读文件
dir E:\工作 /ar
系统文件
dir E:\工作 /as

2、显示目录 并排列顺序
按照名称排序(字母顺序)
dir E:\工作 /on
按照大小排序(从小到大)
dir E:\工作 /os
按照扩展名排序(字母顺序)
dir E:\工作 /oe
按照日期时间(从先到后)
dir E:\工作 /od

#“-” 反转顺序 例如  dir E:\工作 /o-s  本来是按照大小从小到大排序的,加了-后,就变成从大到小降序了

3、显示文件所有者
dir E:\工作 /q

4、显示所有目录及子目录中的所有文件,包括隐藏文件
dir E:\工作 /s

5、显示文件各种时间
显示文件创建时间
dir E:\工作 /tc
显示文件上次访问时间
dir E:\工作 /ta
显示文件上次写入时间
dir E:\工作 /tw

9、创建目录 mkdir/md

mkdir md ::创建目录	md是mkdir的缩写
用法:
···················································
E:\Python_file>mkdir /?
创建目录。

MKDIR [drive:]path
MD [drive:]path

如果命令扩展被启用,MKDIR 会如下改变:

如果需要,MKDIR 会在路径中创建中级目录。例如: 假设 \a 不
存在,那么:

    mkdir \a\b\c\d

与:

    mkdir \a
    chdir \a
    mkdir b
    chdir b
    mkdir c
    chdir c
    mkdir d

相同。如果扩展被停用,则需要键入 mkdir \a\b\c\d。
···················································

1、批量层级创建目录
mkdir no1\no2\no3
这里就创建了三个目录,no2在no1里,no3在no2里

扩展 进入目录(chdir) 删除目录(rd)

进入目录:
chdir :cd是chdir的缩写
只输入cd 后面不跟路径就会显示当前所在位置,作用和linux中的pwd一样

删除目录:
rd / rmdir
rd和rmdir效果是一样的,rd是rmdir的缩写
这两个命令只会删除空目录,如果目录中有内容是不会删除的

/s :删除除目录本身外,还会删除目录下的所有文件和目录
/q :安静模式,就是无交互强制删除
rd filename	/s /q	:这条命令就相当于linux的rm -rf,无交互删除所有目录

10、重命名 ren

ren 重命名目录或文件	ren是rename的缩写,两个命令都可以重命名操作
·······································
E:\Python_file>ren /?
重命名文件。

RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

请注意,你不能为目标文件指定新的驱动器或路径。
·······································

用法:
ren E:\test test1
ren test1 test2

11、拷贝 copy

copy 拷贝
·····································
E:\>copy /?
将一份或多份文件复制到另一个位置。

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B]
     [+ source [/A | /B] [+ ...]] [destination [/A | /B]]

  source       指定要复制的文件。
  /A           表示一个 ASCII 文本文件。
  /B           表示一个二进位文件。
  /D           允许解密要创建的目标文件
  destination  为新文件指定目录和/或文件名。
  /V           验证新文件写入是否正确。
  /N           复制带有非 8dot3 名称的文件时,
               尽可能使用短文件名。
  /Y           不使用确认是否要覆盖现有目标文件
               的提示。
  /-Y          使用确认是否要覆盖现有目标文件
               的提示。
  /Z           用可重新启动模式复制已联网的文件。
/L           如果源是符号链接,请将链接复制
               到目标而不是源链接指向的实际文件。

命令行开关 /Y 可以在 COPYCMD 环境变量中预先设定。
这可能会被命令行上的 /-Y 替代。除非 COPY
命令是在一个批处理脚本中执行的,默认值应为
在覆盖时进行提示。

要附加文件,请为目标指定一个文件,为源指定
数个文件(用通配符或 file1+file2+file3 格式)。
·····································

12、删除文件 del

del ::删除文件的命令
················································
E:\>del /?
删除一个或多个文件。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

  names         指定一个或多个文件或者目录列表。
                通配符可用来删除多个文件。
                如果指定了一个目录,该目录中的所
                有文件都会被删除。

  /P            删除每一个文件之前提示确认。
  /F            强制删除只读文件。
  /S            删除所有子目录中的指定的文件。
  /Q            安静模式。删除全局通配符时,不要求确认
  /A            根据属性选择要删除的文件
  属性          R  只读文件            S  系统文件
                H  隐藏文件            A  准备存档的文件
                I  无内容索引文件      L  重新分析点
                O  脱机文件            -  表示“否”的前缀

如果命令扩展被启用,DEL 和 ERASE 更改如下:

/S 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。
················································

13、文件剪切命令 move

E:\>del /?
删除一个或多个文件。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

  names         指定一个或多个文件或者目录列表。
                通配符可用来删除多个文件。
                如果指定了一个目录,该目录中的所
                有文件都会被删除。

  /P            删除每一个文件之前提示确认。
  /F            强制删除只读文件。
  /S            删除所有子目录中的指定的文件。
  /Q            安静模式。删除全局通配符时,不要求确认
  /A            根据属性选择要删除的文件
  属性          R  只读文件            S  系统文件
                H  隐藏文件            A  准备存档的文件
                I  无内容索引文件      L  重新分析点
                O  脱机文件            -  表示“否”的前缀

如果命令扩展被启用,DEL 和 ERASE 更改如下:

/S 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。

14、用户管理命令 net user

E:\>net user /help
此命令的语法是:

NET USER
[username [password | *] [options]] [/DOMAIN]
         username {password | *} /ADD [options] [/DOMAIN]
         username [/DELETE] [/DOMAIN]
         username [/TIMES:{times | ALL}]
         username [/ACTIVE: {YES | NO}]

NET USER 将创建并修改计算机上的用户帐户。在不使用命令开关的情况下,
将列出计算机的用户帐户。用户帐户信息存储在用户帐户数据库中。

username     为可添加、删除、修改或查看的用户帐户的名称。用户帐户名称
             最多可以有 20 个字符。
password     指定或更改用户帐户的密码。密码的长度必须符合 NET ACCOUNTS
             命令的 /MINPWLEN 选项所设置的最小长度。
             最多可以有 14 个字符。
*            生成密码提示。在密码提示下键入密码时,将不会显示密码。
/DOMAIN      在当前域的域控制器上执行此操作。
/ADD         向用户帐户数据库添加用户帐户。
/DELETE      从用户帐户数据库删除用户帐户。

选项         如下所示:

   选项                       描述
      --------------------------------------------------------------------
   /ACTIVE:{YES | NO}         激活或取消激活帐户。如果该帐户处于非激活状态,
                              用户将无法访问服务器。默认设置为“YES”。
   /COMMENT:"text"            提供有关用户帐户的描述性注释。请将文本用引号
                              括起来。
   /COUNTRYCODE:nnn           使用操作系统国家/地区代码执行指定的语言文件,
                              以显示用户帮助和错误消息。值 0 表示使用默认
                              的国家/地区代码。
   /EXPIRES:{date | NEVER}    如果设置了日期,可导致帐户过期。
                              NEVER 将帐户设置为无时间限制。
                              过期日期采用格式 mm/dd/yy(yy)。
                              月份可以是一个数字、完整字母拼写,
                              或使用三个字母的缩写。年份可以使用两位数字
                              或四位数字。使用斜线(/)(不留空格)
                              将日期的各个部分隔开。
   /FULLNAME:"name"           用户的全名(而不是用户名)。请将该名称用引号
                              括起来。
   /HOMEDIR:pathname          用户的主目录设置路径。该路径必须存在。
   /PASSWORDCHG:{YES | NO}    指定用户是否可以更改其密码。默认设置
                              为“YES”。
   /PASSWORDREQ:{YES | NO}    指定用户帐户是否必须拥有密码。
                              默认设置为“YES”。
   /LOGONPASSWORDCHG:{YES|NO} 指定用户是否应在下次登录时更改其密码。
                              默认设置为“NO”。
   /PROFILEPATH[:path]        为用户登录配置文件设置路径。
   /SCRIPTPATH:pathname       用户登录脚本的位置。
   /TIMES:{times | ALL}       登录小时数。TIMES 表示为
                              day[-day][,day[-day]],time[-time][,time
                              [-time]],增量限制为 1 小时。
                              日期可以是完整拼写,也可以是缩写。
                              小时可以是 12 或 24 小时表示法。对于
                              12 小时表示法,请使用 am、pm、a.m. 或
                              p.m。ALL 表示用户始终可以登录,
                              空白值表示用户始终不能登录。使用逗号将日期和时
                              间隔开,使用分号将多个日期和时间隔开。
   /USERCOMMENT:"text"        允许管理员添加或更改帐户的用户注释。
   /WORKSTATIONS:{computername[,...] | *}
                              列出用户可用于登录到网络的计算机,最多为八台。
                              如果 /WORKSTATIONS 没有列表,或其列表为 *,
                              则用户可以通过任何计算机登录到网络。

NET HELP 命令 | MORE 显示帮助内容,一次显示一屏。

15、用户组管理命令 net localgroup

net localgroup
用法:
···············································
E:\>net localgroup /help
此命令的语法是:

NET LOCALGROUP
[groupname [/COMMENT:"text"]] [/DOMAIN]
              groupname {/ADD [/COMMENT:"text"] | /DELETE}  [/DOMAIN]
              groupname name [...] {/ADD | /DELETE} [/DOMAIN]

NET LOCALGROUP 修改计算机上的本地组。使用时如果没有选项,它将显示计算机上的本
地组。

groupname        为要添加、扩展和删除的本地组的名称。仅提供用以查看用户或本地
                 组中全局组的组名。
/COMMENT:"text"  为新组或现有组添加注释。将文本用引号括起来。
/DOMAIN          在当前域的域控制器上执行操作。否则,在本地工作站上执行该操作
                。
name [ ...]      列出添加到本地组或从中删除的一个或多个用户名或组名。用空格将
                 多个条目隔开。名称可以是用户或全局组,但不能是其他本地组。如
                 果用户来自其他域,则用域名作为用户名的开始(例如,SALES
                 \RALPHR)。
/ADD             将组名或用户名添加到本地组。必须为利用该命令添加到本地组的用
                 户或全局组建立帐户。
/DELETE          将组名或用户名从本地组删除。
···············································
if语句格式:
if 条件 (
	满足条件执行语句
) else (
	不满足条件执行语句
)
·············································
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
用法:
@echo off
if "A" equ "A" echo equ ok	A等于A满足
if "A" == "A" echo equ ok	
if /I "A" equ "a" echo equ ok	不区分大小写
if 100 equ 100 echo equ ok
if 100 == 100 echo equ ok

if %errorlevel%==""
::%errorlevel%是判断上一条命令是否执行成功,成功返回0,失败返回1
···············································
判断变量是否为一个值
@echo off
::if-else结构
set a=%1%
if %a% == hello (echo ok) else (echo no)
pause > nul

判断文件是否存在	exist
@echo off
::if判断文件是否存在
chcp 65001 >nul
if exist E:\工作\记事本.sh2 (echo yes
) else (echo no)
pause > nul

比大小
@echo off
::if判断输入变量的大小
chcp 65001 >nul
::输入第一个变量no1
set /p no1=no1=
::输入第二个变量no2
set /p no2=no2=
::判断
if %no1% gtr %no2% (
	echo no1大
) else (
	if %no1% equ %no2% (
		echo no1等于no2
	) else (
		echo no2大)
	)
pause > nul

17、for语句

删除指定目录下所有txt文件
@echo off
chcp 65001>nul
for /d %%a in (test\*) do dir %%a\*.txt && del %%a\*.txt /a && echo 已删除所有*.txt文件
pause>nul

该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)
FOR /L %variable IN (start,step,end) DO command [command-parameters]
for /l %%a in (1,1,5) do mkdir %%a	::批量创建1-5文件夹
for /l %%a in (50,1,60) do ping -n 2 -w 60 123.56.23.%%a > nul && echo 123.56.23.%%a

检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
for /r "F:\桌面\test\新建文件夹\" %%a in (*.txt) do echo %%a	::寻找目录下所有.txt文件

测试ip是否通
@echo off
chcp 65001>nul
set /p nnn=按回车开始……
set ip=%1%
for /l %%a in (50,1,52) do ping -n 2 -w 60 %ip%.%%a >nul && echo %ip%.%%a
echo 回车退出……
pause>nul

18、goto跳转

:test
mkdir 1
cd 1
goto test

这样几句代码就可以实现反复循环创建目录1
goto 是会在执行完上面的命令后,跳转到:test部分,就会反复执行

可以配合if使用
@echo off
if %os%==Windows_NT goto windows
if %os%==Linux goto linux
:windows
echo os is windows
goto end
:linux
echo os is not windows
goto end
:end
pause>nul

19、例

@echo off
chcp 65001>nul
cls

:adm
echo 1:用户查询
echo 2:进程查询
set /p xt=请选择(1/2):
if %xt%==1 goto user
if %xt%==2 goto jincheng
echo 请输入正确选择
goto adm

:user
set /p username=请输入用户名:
net user %username%
goto end

:jincheng
tasklist
echo.
echo.
echo 1通过image_name查询
echo 2通过PID查询
set /p b=请选择(1/2):
if %b%==1 goto imagename
if %b%==2 goto pid
goto jincheng

:imagename
set /p image=请输入服务名例如(哔哩哔哩.exe):
tasklist /fi "imagename eq %image%"
goto end

:pid
set /p pids=请输入pid号:
tasklist /fi "pid eq %pids%"
goto end

:end
pause>nul

第三天

20、收集

https://www.toutiao.com/article/7048462948905648676/

https://www.hackbase.net/script/bat/

上一页CentOS系统版本升级下一页ELK

这有帮助吗?

16、

🚗
🥲
官方教程
案例
if语句
csdn bat脚本
csdn bat脚本2
人人编程网
AAA