windows 脚本语言学习
背景
绝大多数开发者的开发环境都是基于 windows 平台,那么如果掌握了基于这个平台的脚本语言,就能够编写一些我们自己的批处理工具,这样能有效提高我们的工作效率。接下来的内容讲解一下 windows 脚本语言的大致使用。
常用编码转换
bat 文件默认使用 GBK 格式的编码,如果输入中文却不改变编码格式,那么打印出来的中文会乱码。因此,在打印中文前修改编码格式,例如:
转换为 ANSI 编码:chcp 65001
转换为 GBK(默认) 编码:chcp 936
当然,你也可以直接将整个 bat 文件直接更改默认编码,比如使用 notePad++
就能做到。
路径获取
常用的路径获取命令如下:
- 获取的当前盘符是:
%~d0
- 当前盘符和路径:
%~dp0
- 当前批处理全路径:
%~f0
常用关键字
1. echo
功能:打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。
``echo [{on|off}] [message]`
Sample:@echo off / echo on / echo hello world
在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定的文件中。
2. rem
功能:注释命令,用于为脚本代码添加注释
*Rem Message*
*Sample:@Rem Here is the description.*
添加注释的方式很多,常见的比如以下三种:
echo.
echo=
::
3. pause
功能:暂停命令行界面,常常用来脚本运行完成后保持命令行窗口不消失
比如,安装完一个 apk 之后,使用 pause 命令,展示安装结果,提示:press any key to continue…
4. call
从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。
*call [[Drive:][Path] FileName ] [:label [arguments]]*
5. @
经常看到 @ 这个符号放到关键字的前面,它的主要作用是不输出@后面的命令。
6. goto
跳转到指定标签,程序将处理从下一行开始的命令。这个命令应该配合 :
来使用,通过冒号定义一个标签,再使用 goto 语句跳转到这个标签处,并开始执行下面的命令。比如
:tag1
echo 这里循环处理一些事情
:tag2
echo 做完了
goto tag1
这里定义两个 tag ,整个命令做完之后再跳转到 tag1
循环执行
执行完成不关闭窗口
- 批处理命令结尾输出空行,可以继续输入命令
cmd/k echo.
- 批处理命令结尾输出空行,按任意键关闭窗口
pause
获取当前时间戳
set currentTime=%date:~0,4%%date:~5,2%%date:~8,2%%h%%time:~3,2%%time:~6,2%
echo %currentTime%