BATCH file 与Makefile 之Batch篇

    最近闲来研究了一下Batchfile和makefile的使用。

    稍稍总结如下:

    Batch file

    1.关于batch file:Wiki中的定义如下:    

   

    In DOS, OS/2, and Microsoft Windows, a batch file is a text file containing a series of commands intended to be executed by the command interpreter. When a batch file is run, the shell program (usually COMMAND.COM or cmd.exe) reads the file and executes its commands, normally line-by-line. Batch files are useful for running a sequence of executables automatically and are often used by system administrators to automate tedious processes.[1] Unix-like operating systems (such as Linux) have a similar type of file called a shell script.[2]

    DOS batch files have the filename extension .bat. Batch files for other environments may have different extensions, e.g. .cmd or .bat in the Microsoft Windows NT-family of operating systems and OS/2, or .btm in 4DOS and 4NT related shells. The Windows 9x family of operating systems only recognize the .bat extension. Note that in OS/2 a file with a .cmd extension is assumed to be a Rexx file.

 

    2.Batch文件的创建

    Microsoft Windows系统用户创建Batch文件
   1)打开MS-DOS命令窗口,输入edit test.bat,安回车键,即可以编辑。
   2)采用任一文件编辑器,如Notedpad或Wordpad,创建batch文件,文件后缀为.bat.

 

    3.书写Batchfile命令总结

    网上大多数只是一些举例,不全面,互相抄袭,本人部分参考网页内容,部分自己通过CMD中的help命令打印出来的一个较完整版本的。

    在CMD中输入help得到command set:

    @ 不回显@符号后面的文本内容
    %1 百分号后面加上数字,允许用户在Batch文件中输入变量。
    ::在Batch文件中加入标记,不显示或执行所在的行的命令
    :LABLE 在字符前面加上冒号,如LABLE,可以创建一个category。这可以使你跳过batch文件的一些段。
    CALL 用于在一个batch文件中调用其它的batch文件。
    CALL [drive:][path]filename [batch-parameters]
           batch-parameters 指定批处理程序所需的命令行信息
           如果命令扩展名被启用,CALL会如下改变:
           CALL 命令现在将卷标当作CALL的目标接受。语法是:
           CALL:label arguments
    CLS:像DOS命令一样,将清除屏幕
    ECHO:在batch文件中回显信息。
    EXIT:如果batch文件从Windows运行,将退出DOS窗口。
    GOTO:用于跳到一个标签,如LABEL。
    IF:用于检查条件,如果条件存在的话。
    PAUSE:让用户Press任一健继续
    REM:在Batch文件中加入标记,不显示或执行所在的行的命令
    SHIFT:
    START:用于Windows95,Windows98,WindowsNT及以上来启动一个Windows应用程序。
       如START C:/WINDOW/CALC 将运行Windows Calculator。
    CD:显示当前目录名称或是将其更改

 

    4.详细命令总结如下:

    

1).help

提供 Windows 命令的帮助信息。
HELP [command]
command - 显示该命令的帮助信息。

2).assoc

显示或修改文件扩展名关联
ASSOC [.ext[=[fileType]]]
.ext 指定跟文件类型关联的文件扩展名
fileType 指定跟文件扩展名关联的文件类型
键入 ASSOC 而不带参数,显示当前文件关联。如果只用文件扩展
名调用 ASSOC,则显示那个文件扩展名的当前文件关联。如果不为
文件类型指定任何参数,命令会删除文件扩展名的关联。

3).at

AT 命令安排在特定日期和时间运行命令和程序。
要使用 AT 命令,计划服务必须已在运行中。
AT [//computername] [ [id] [/DELETE] | /DELETE [/YES]]  
AT [//computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] "command"
//computername 指定远程计算机。如果省略这个参数,
会计划在本地计算机上运行命令。
id 指定给已计划命令的识别号。
/delete 删除某个已计划的命令。如果省略 id,
计算机上所有已计划的命令都会被删除。
/yes 不需要进一步确认时,跟删除所有作业
的命令一起使用。
time 指定运行命令的时间。
/interactive 允许作业在运行时,与当时登录的用户
桌面进行交互。
/every:date[,...] 指定在每周或每月的特定日期运行命令。
如果省略日期,则默认为在每月的
本日运行。
/next:date[,...] 指定在下一个指定日期(如,下周四)运
行命令。如果省略日期,则默认为在每
月的本日运行。
"command" 准备运行的 Windows NT 命令或批处理
程序。

4).attrib
显示或更改文件属性。
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
[drive:][path][filename] [/S [/D] [/L]]
+ 设置属性。
- 清除属性。
R 只读文件属性。
A 存档文件属性。
S 系统文件属性。
H 隐藏文件属性。
I 无内容索引文件属性。
[drive:][path][filename]
指定 attrib 要处理的文件。
/S 处理当前文件夹及其所有子文件夹中的匹配文件。
/D 也处理文件夹。
/L 处理符号链接和符号链接目标的属性。

5).break
设置或清除 DOS 系统的扩展 CTRL+C 检测
这个命令是为了与 DOS 系统的兼容而保留的,在 Windows 
里不起作用。
如果命令扩展被启用,并且操作平台是 Windows,
BREAK 命令会在被调试程序调试时输入一个硬代码中断点。

6).call
从批处理程序调用另一个批处理程序。
CALL [drive:][path]filename [batch-parameters]
batch-parameters 指定批处理程序所需的命令行信息。
如果命令扩展被启用,CALL 会如下改变:
CALL 命令现在将卷标当作 CALL 的目标接受。语法是:
CALL:label arguments
一个新的批文件上下文由指定的参数所创建,控制在卷标被指定
后传递到语句。您必须通过达到批脚本文件末两次来 "exit" 两次。
第一次读到文件末时,控制会回到 CALL 语句的紧后面。第二次
会退出批脚本。键入 GOTO /?,参看 GOTO :EOF 扩展的描述,
此描述允许您从一个批脚本返回。
另外,批脚本文本参数参照(%0、%1、等等)已如下改变:
批脚本里的 %* 指出所有的参数(如 %1 %2 %3 %4 %5 ...)
批参数(%n)的替代已被增强。您可以使用以下语法:
%~1 - 删除引号("),扩展 %1
%~f1 - 将 %1 扩展到一个完全合格的路径名
%~d1 - 仅将 %1 扩展到一个驱动器号
%~p1 - 仅将 %1 扩展到一个路径
%~n1 - 仅将 %1 扩展到一个文件名
%~x1 - 仅将 %1 扩展到一个文件扩展名
%~s1 - 扩展的路径只含有短名
%~a1 - 将 %1 扩展到文件属性
%~t1 - 将 %1 扩展到文件的日期/时间
%~z1 - 将 %1 扩展到文件的大小
%~$PATH:1 - 查找列在 PATH 环境变量的目录,并将 %1
扩展到找到的第一个完全合格的名称。如果
环境变量名未被定义,或者没有找到文件,
此修改符会扩展到空字符串
可以组合修改符来取得多重结果:
%~dp1 - 只将 %1 扩展到驱动器号和路径
%~nx1 - 只将 %1 扩展到文件名和扩展名
%~dp$PATH:1 - 在列在 PATH 环境变量中的目录里查找 %1,
并扩展到找到的第一个文件的驱动器号和路径。
%~ftza1 - 将 %1 扩展到类似 DIR 的输出行。
在上面的例子中,%1 和 PATH 可以被其他有效数值替换。
%~ 语法被一个有效参数号码终止。%~ 修定符不能跟 %*
使用


7).cacls
注意: 不推荐使用 Cacls,请使用 Icacls。
显示或者修改文件的访问控制列表(ACL)
CACLS filename [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G user:perm]
[/R user [...]] [/P user:perm [...]] [/D user [...]]
filename 显示 ACL。
/T 更改当前目录及其所有子目录中
指定文件的 ACL。
/L 对照目标处理符号链接本身
/M 更改装载到目录的卷的 ACL
/S 显示 DACL 的 SDDL 字符串。
/S:SDDL 使用在 SDDL 字符串中指定的 ACL 替换 ACL。
(/E、/G、/R、/P 或 /D 无效)。
/E 编辑 ACL 而不替换。
/C 在出现拒绝访问错误时继续

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值