BatShell
2019-06-09-BatShell
Windows bat 脚本
批处理文件,在DOS和Windows(任意)系统中,.bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用。
BATSHELL参考
语法:
echo: 显示信息,或将命令回显打开或关上- echo [on | off]
- echo [message]
@: 表示不显示@后面的命令- 标签必须单独一行,并且以冒号打头。
- 如果命令扩展被启用,GOTO 会如下改变
goto: goto label, 无条件跳转- label 指定批处理程序中用作标签的文字字符串
1
2goto end
:endrem: 在批处理文件或 CONFIG.SYS 里加上注解或说明- rem [comment]
- :: [commnet]
title: 设置窗口标题- title [string]
pause:暂停批处理程序,并显示以下消息:- 请按任意键继续. . .
call:call [drive:][path]filename [batch-parameters]1
2
3
4
5
6
7
8@echo off
call :an Hello 世界!
:an
echo %1
echo %2
pause>null
输出为: Hello 世界!if:执行批处理程序中的条件处理1
2
3IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename commandfor:对一组文件中的每一个文件执行某个特定命令1
for %variable in (set) DO command [command-parameters]- 在批处理程序中使用 for 命令时, 指定变量请使用
%%variable而不要用%variable, 变量名称是区分大小写的,所以 %i不同于 %I
- 在批处理程序中使用 for 命令时, 指定变量请使用
set:显示、设置或删除 cmd.exe 环境变量1
2
3
4
5set [variable=[string]]
variable # 指定环境变量名
string # 指定要指派给变量的一系列字符串
SET /A expression
SET /P variable=[promptString]del:删除一个或数个文件1
DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
参数:
批脚本里的
%*指出所有的参数(如%1 %2 %3 %4 %5 ...)批参数(%n)的替代已被增强:
1
2
3
4
5
6
7
8
9
10
11
12
13
14%~1 - 删除引号("),扩展 %1
%~f1 - 将 %1 扩展到一个完全合格的路径名
%~d1 - 仅将 %1 扩展到一个驱动器号
%~p1 - 仅将 %1 扩展到一个路径
%~n1 - 仅将 %1 扩展到一个文件名
%~x1 - 仅将 %1 扩展到一个文件扩展名
%~s1 - 扩展的路径只含有短名
%~a1 - 将 %1 扩展到文件属性
%~t1 - 将 %1 扩展到文件的日期/时间
%~z1 - 将 %1 扩展到文件的大小
%~$PATH:1 - 查找列在 PATH 环境变量的目录,并将 %1
扩展到找到的第一个完全合格的名称。如果
环境变量名未被定义,或者没有找到文件,
此修改符会扩展到空字符串可以组合修改符来取得多重结果(d-Drive,p-Path):
1
2
3
4
5%~dp0 - 获取当前路径
%~dp1 - 只将 %1 扩展到驱动器号和路径
%~nx1 - 只将 %1 扩展到文件名和扩展名
%~dp$PATH:1 - 在列在 PATH 环境变量中的目录里查找 %1,并扩展到找到的第一个文件的驱动器号和路径。
%~ftza1 - 将 %1 扩展到类似 DIR 的输出行%源字符串:~起始值,截取长度% (起始值从0开始;截取长度是可选的,如果省略逗号和截取长度,将会从起始值截取到结尾;
BatShell
https://anyu967.github.io/posts/8ef1acd.html