windows命令行与批处理基础

这篇是笔记,并不是up视频的单纯板书。
一、命令行
1)cmd和powershell
小寄巧:
0.命令不区分大小写
1.按上下键可快速输入历史命令
2.Tab键电脑自动猜测补全
3.在一个命令后加上 /? 电脑将解释该命令的详细展开用法(中括号代指选填参数,可不填),下文命令扩展用法可用此法学习。
4.显示中文汉字需要更改为gbk编码即可
5.rem代表注释
2)cmd基本命令
1.echo 显示:echo hello,world !!!
2.pause 时停 (可用于在批处理最后加上,让窗口不至于快速消失)
3.cls 清屏
4.type 显示文件内容
5.find 查找并输出字符串所在行内容
6.fc 寻找并输出两文件不同之处所在的上下三行内容
7.time/date 显示当前时间或修改时间(课代表个人补充:管理员权限执行,可快速修改右下角系统时间)
8.ping 测试本机与某某链接是否畅通
9.ipconfig 本地网络配置信息(课代表个人补充:家庭环境中,查看默认网关和ipv4,即可知道本机所连的上一级的路由器地址和本机在局域网中的位置)
10.set /a 算术运算
11.shutdown 关机,可自定义各种关机的方式
3)特殊符号
3.1多命令
- & 顺序执行,忽略错误。
- && 顺序执行,执行错误命令后语句结束。
- || 顺序执行,执行正确命令后语句结束。
3.2重定向
- > 将结果覆盖进某文件中
- >> 将结果追加进某文件中
- < 将文件内容输入给命令
3.3管道
- | 前命令的输出作为后命令的输入,可连续使用
4)文件操作
- dir 显示当前所处文件夹下的内容
- tree 显示文件夹树形结构,如何显示需自行选择
- 盘符: 跳转进指定磁盘
- cd 切换目录
- mkdir/md 创建目录 (课代表补充:可以创建一长串原先不存在的父子文件夹,所以叫创建目录)
- rmdir/rd 删除目录
- del 删除文件
- rename/ren 重命名
- cpoy 复制文件
- move 移动文件
二、批处理
1)小提示
1.多命令在一个文件中执行 后缀.bat
2.@echo off 运行时不显示命令行本身(在批处理的最后搭配上pause > nul 即可做到保留窗口的同时消除“请按任意键继续...”的提示)
3.双击或者cmd中运行
2)变量
1.set abc=123 定义变量
2.set /a abc=1+2*2 表达式定义变量
3.set /p abc=请输入xx 让用户输入定义变量值
4.echo %abc% 输出变量值
5.set abc 打印变量
6.set 列出本机当前所有定义变量
7.set abc= 删除该变量
3)预定义变量
1.%cd% 显示当前所在目录
2.%date%/%time% 显示当前日期/时间
3.%random% 生成0-32767之间的随机数
4.%path% 环境变量
5.%errorlevel% 返回上个命令的返回值,成功通常为0
6.%1 %2 ...(我个人理解:执行批处理前的预先输入参数,%0指的是批处理文件本身的路径名。)
4)调用
call 可执行文件(exe和bat均可)
5)if条件
1.可单行完成,我个人记法,多行时,记住 让左括号的右边是段落结束,右括号的左边是段落开始。
2.if语句只有四个功能
2.1 比较上个指令的返回值 errorlevel 数值 返回值大于等于填写数值 则为true
2.2 比较两个字符串 字符串1==字符串2 相同则为true
2.3 查看文件是否存在 exist 文件名 存在则为true
2.4 比大小 [/i] 变量1 比较命令 变量2
等于 equ
不等于 neq
小于 lss
小于等于 leq
大于 gtr
大于等于 geq
6)跳转
goto line1
:line1 代码
7)for循环
for %%i in(set) do()
1.这个i只能是单个字母
2.支持通配符比如 in(*.*) 则遍历当前文件夹内的文件名
3.只遍历文件夹 for后跟/d
4.遍历全部文件 后跟/r [目录]
5.目录树 后跟/r [目录] in(.)
6.遍历数字序列 for /l %%i in (start,step,end) do
7.遍历文件内容 for /f %%i in(文件) i指每一行
结束: 小试身手
1)将所有文件分别命名为从1到100
2)批处理中for循环的自增减问题
解释原因:在for中,%n%是被整个替换成一个固定量来看待的,不会更新,故即使n的值确实在增加,但是%n%在for运行结束前始终是不变的状态。
解决方法:增加一行
setlocal enabledelayedexpansion
启动变量延迟,并将%n% 替换成 !n! ,告知解释器这个变量是会随时变化的,操作它前要看看它有没有变化!
断断续续看了两天,最后感谢up主,让我对cmd命令有了更清楚的认识。