批处理

批处理参数扩展:
%~1  扩展%1并删除引号
%~p1 扩展到完全路径名
%~dpnx1 扩展到 盘符,路径,文件名,扩展符   也就是全路径
%~atz1 扩展到 文件属性,日期和时间,文件大小

/***********************************************************************************************************/
批处理文件中可以使用的命令种类: 
只要能够在DOS的系统提示符下执行的命令,或应用软件执行文件名称,都能写在批处理文件中,批处理命令也可包含在内,详细如下: 
1.DOS的内部命令 
2.DOS的外部命令 
3.COM的命令文件 
4.EXE的可执行文件 
5.批文件命令:CALL,ECHO,FOR,GOTO,IF,PAUSE,REM,SHIFT 
6.其他的批文件 

在DOS和Win9x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件,特殊标记符(并非命令)
CR(0D) 命令行结束符
Escape(1B) ANSI转义字符引导符
Space(20) 常用的参数界定符
Tab(09) ; = 不常用的参数界定符
+ COPY命令文件连接符
* ? 文件通配符"" 字符串界定符
| 命令管道符
< > >> 文件重定向符
@ 命令行回显屏蔽符
/ 参数开关引导符
: 批处理标签引导符
% 批处理变量引导符

所谓“复合语句”就是指一对()里的所有命令,在复合语句中才要使用延迟变量.由于复合语句作为一条语句处理,因此在复合语句里面对变量的修改不会影响该复合语句中该变量的值,但在复合语句之外,它的值是被修改了。正常情况下,语句中%var%相当于宏,执行前已经被替换,而!var!则执行时才被替换。
setlocal EnableDelayedExpansion
set var=abc
for /l %%i in (1 1 10) do (
set var=%%i
echo %var%
echo !var!
)
%var%没有使用变量延时,他的值永远是abc,!var!用到了变量延时,他的值会每次加1,如果在括号后边再次打印var,无论是%var%还是!var!都是10.

echo 表示显示此命令后的字符
echo off | on 表示在此语句后所有运行的命令都不显示命令行本身,相当于每行前面都有@,若要显示当前的ECHO的设置,可使用不带参数的ECHO
命令。
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。
pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示.
rem 表示此命令后的字符为解释行
%[1-9]表示参数,%0表示批处理命令本身

goto 批处理文件运行到这里将跳到goto所指定的标号,标号用":字符串"来定义,标号所在行不被执行。
choice 使用此命令可以让用户输入一个字符,从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配合,根据用户的选择运行不同的命令。choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。
CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

参数列表:
/C choices 指定要创建的选项列表。默认列表是 "YN"。
/N 在提示符中隐藏选项列表。提示前面的消息得到显示,选项依旧处于启用状态。
/CS 允许选择分大小写的选项。在默认情况下,这个工具是不分大小写的。
/T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0到 9999。如果指定了 0,就不会有暂停,默认选项会得到选择。
/D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选项指定的一组选择中; 同时,必须用 /T 指定 nnnn。
/M text 指定提示之前要显示的消息。如果没有指定,工具只显示提示。
/? 显示帮助消息。

ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降序排列,
@echo off
choice /C dme /M "defrag,mem,end"
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errorlevel 1 goto defrag

MS-DOS认为以冒号打头的一行是标号,而不是命令,并忽略此行的所有命令dos命令

一、DIR 命令的格式:

dir [D:][PATH][NAME][[/A][:attrib]][/o:[sorted][/s][/b][/l][/c[h]
(1)dir /a:attrib 缺省包含所有文件(系统文件.隐含文件)
attrib[:][h/-h]只显示隐含文件或非隐含文件.
[r/-r]只显示只读文件或非只读文件
[s/-s]只显示系统文件或非系统文件
[a/-a]只显示要归档文件或非归档文件

二、attrib [+r|-r] [+a|-a] [+s|-s] [+h|-h] [d: ] [name] [/s]
缺省 attrib name 显示文件的(文件)属性
attrib io.sys (或子目录)
shr c:\ io.sys 指定为系统(s) 隐含(h) 只读(r)文件
也可以attrib *.sys 显示扩展名为sys的文件属性
参数 [+r|-r] 将文件属性设置或解除 只读属性
[+a|-a] 将文件属性设置或解除 归档属性
[+h|-h] 将文件属性设置或解除 隐含属性 (尤其对子目录也起作用)
/s 参数 将当前及当前子目录下的所有文件均起作用

六、 del /p
加/p 可以在删除前是否提示,如del后加子目录名,则将子目录下所有文件(隐含.系统.只读文件除外)全删除,加/p则可以确认. 

二十一、prompt dos提示符
$q 等于号 $t 当前时间 $d 当前日期 $p 当前驱动器符号
$$ $号提示 $n当前驱动器 $g 大于号 $l小于号 $b 显示"|"管道号
$h 隐去提示符 $E显示"<-"号
对于其它文字,则直接显示文本本身prompt ljw,则显示为ljw提示符
prompt 则仅显示当前驱动器号及大于号.


二十三、subst 将一个驱动器与一个子目录联接
如:将对A:\l1\l2 子目录的请求映射为S盘,则输入subst s: a:\l1\l2 即可,这样使用dir s:?等命令则显示的是a:\l1\l2子目录下的内容,其它copy del 一样可以用subst s: d 来取消这种映射.可以用subst 来显示各种联接情况
注意:?可以采用subst a: c:a 来建立一个对于A的读写盘.对于某些安装软件来说,?必须使用A盘来安装,就可以使用先将所要安装的软件全部拷贝到C:a子目录中,然后输入subst a: c:a,再转到A:,就可以进行软件的安装了. 

二十五、各种管道工具的使用"> < >> <<"将各种命令造成的输出或所需要的输入重新定向
如:dir *.bat /b>p 可以将dir *.bat 例出的文件名输出到p文件中.
time<p>>p.bat
p文件中仅存在一个回车符,则可以将时间追加进p.bat文件中

"> >>" 是将命令产生的输出重新定向,比如到文件或打印机中.
>>产生的内容将追加进文件中,>则将原文件内容覆盖.
"< <<" 是将命令所需要输入的内容重新定向.
如:time<p 在批中可以是时间代码或回车符,可以以此改变时间.
需要说明的是 "prn "为打印机, "null"为空设备

con 为显示器
type p.bat>prn 可将p.bat打印出来.
copy null p 可将p文件删除掉
copy con p 可以在屏幕上编辑p文件,F6可以存盘退出
type p>pp 完成p文件到pp 的复制
type p|more 可在屏满时暂停显示 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值