Batch学习
今日学习
window batch(内置):
adb 学习中,绕不过去的就是window batch。因为本身adb 运行最常见的环境就是cmd
cd 路径
进入相应的路径
C:\Users\le>cd Desktop
C:\Users\le\Desktop>
切换系统盘(不用cd,直接写X: ‘X为系统盘名称’)
C:\Users\su00123>D:
D:\MH临时存放区\BAT\bat-script>
dir
显示当前路径
C:\Users\le>dir
驱动器 C 中的卷没有标签。
卷的序列号是 048E-85D3
C:\Users\le 的目录
2022/01/08 17:01 <DIR> .
2022/01/08 17:01 <DIR> ..
2021/03/23 14:25 <DIR> .android
2021/03/21 17:44 <DIR> .idlerc
2022/01/10 23:16 <DIR> .Ld2VirtualBox
2021/03/21 16:49 <DIR> .repoconfig
2021/03/23 14:10 <DIR> .vscode
2021/10/09 23:29 <DIR> 3D Objects
2021/10/09 23:29 <DIR> Contacts
2022/01/09 23:32 <DIR> Desktop
2021/11/20 19:31 <DIR> Documents
2022/01/08 16:37 <DIR> Downloads
2021/10/09 23:29 <DIR> Favorites
2021/10/09 23:29 <DIR> Links
2021/10/09 23:29 <DIR> Music
2021/10/10 01:06 <DIR> OneDrive
2021/10/09 23:29 <DIR> Pictures
2021/03/24 16:04 <DIR> PycharmProjects
2021/10/09 23:29 <DIR> Saved Games
2021/10/09 23:29 <DIR> Searches
2021/10/09 23:29 <DIR> Videos
0 个文件 0 字节
21 个目录 35,863,863,296 可用字节
XXX /? 帮助(所有代码具体使用可以用/?现查)
C:\Users\le\Desktop>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 显示指定目录和所有子目录中的文件。
move 移动文件 (不能简写成mv)
D:\MH临时存放区\BAT\bat-script>move D:\MH临时存放区\BAT\bat-script\ca_log.txt D:\MH临时存放区\BAT\bat-script\map
移动了 1 个文件。
move 文件原本路径 文件去到的路径
copy 复制文件
D:\MH临时存放区\BAT\bat-script>copy D:\MH临时存放区\BAT\bat-script\ta_log-old.bat D:\MH临时存放区\BAT\bat-script\TA_LOG_OLD.bat
已复制 1 个文件。
copy可以更改文件名,move同样可以
del 删除
D:\MH临时存放区\BAT\bat-script>del /P ta_log.txt
D:\MH临时存放区\BAT\bat-script\ta_log.txt,要删除(Y/N)吗? y
del /p为删除前确认,这里是进入目录后才删除,所以ta_log.txt是相对目录,但最好还是用绝对目录,会比较好。
win batch(path):
@ @的作用是关闭此行的回显
echo off 关闭所有回显
在写bat时会让显示输出只有代码输出的值,而不会显示代码本身,会看得更方便点
echo on 开启回显
::batch 注释,只能注释单行
D:\MH临时存放区\BAT\bat-script>echo off
dir |findstr "7z"
2021/09/10 18:52 225 ta_log.7z
echo on
D:\MH临时存放区\BAT\bat-script>
| 管道,将上一行的输出运用到下一行的输入上
D:\MH临时存放区\BAT\bat-script>dir |findstr "7z"
2021/09/10 18:52 225 ta_log.7z
set 变量的定义和使用
set 变量名=变量值(注意不要再变量名和等于号之间加空格,batch识别不了这个空格为空,会导致变量名变化(变量名 = 变量名+空格),调用不了变量名)
引用变量需要 %变量名%
D:\MH临时存放区\BAT\bat-script>set data="hello world"
D:\MH临时存放区\BAT\bat-script>echo %data%
"hello world"
‘>’ ‘>>’ '<'重定向
与linux 相同,batch支持重定向
< 重定向输入,将文件代替标准输入
> 重定向输出,将程序输出写道文件中
>> 重定向输出,将同上,但此输出不覆盖,而是续写
一般下面两个用的比较多,多应用于存储log输出
命令行参数:
%1
%2
…
这些都是batch自带的一些参数
%0为脚本自身名字
start 和call
D:\MH临时存放区\BAT\bat-script>start ta_log.bat
D:\MH临时存放区\BAT\bat-script>call ta_log.bat
D:\MH临时存放区\BAT\bat-script>adb wait-for-device
D:\MH临时存放区\BAT\bat-script>adb root
adbd is already running as root
D:\MH临时存放区\BAT\bat-script>adb remount
remount succeeded
D:\MH临时存放区\BAT\bat-script>adb shell "cat /proc/tzdbg/qsee_log_dump" 1>ta_log.txt
^C终止批处理操作吗(Y/N)? y
start是新开一个cmd命令窗口,执行相应bat
call是代码调用,你可以将call理解为调用函数,它会在当前cmd窗口中执行