bat.文件的命令语法 和如何获得时间戳

来源:互联网 发布:led拼接控制器软件 编辑:程序博客网 时间:2024/05/17 02:12
 常用命令 

echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。 

==== 注 =========== 
首先, 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符: 
CR(0D) 命令行结束符 
Escape(1B) ANSI转义字符引导符 
Space(20) 常用的参数界定符 
Tab(09) 不常用的参数界定符 
COPY命令文件连接符 
文件通配符 
"" 字符串界定符 
命令管道符 
>> 文件重定向符 
命令行回显屏蔽符 
参数开关引导符 
批处理标签引导符 
批处理变量引导符 

其次, :: 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意: 
第一, 除了 :: 之外, 任何以 :开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用 goto 所无法识别的标号, 即在 :后紧跟一个非字母数字的一个特殊符号. 
第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比 :: 更为适用; 另外, rem 可以用于 config.sys 文件中. 
===================== 

echo 表示显示此命令后的字符 
echo off 表示在此语句后所有运行的命令都不显示命令行本身 
@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。 
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。 
pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续 
rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。 
==== 注 ===== 
此处的描述较为混乱, 不如直接引用个命令的命令行帮助更为条理 

------------------------- 
ECHO 

当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。 

在运行批处理程序时,MS-DOS一般在屏幕上显示(回显)批处理程序中的命令。 
使用ECHO命令可关闭此功能。 

语法 

ECHO [ON|OFF] 

若要用echo命令显示一条命令,可用下述语法: 

echo [message] 

参数 

ON|OFF 
指定是否允许命令的回显。若要显示当前的ECHO的设置,可使用不带参数的ECHO 
命令。 

message 
指定让MS-DOS在屏幕上显示的正文。 

------------------- 

CALL 

从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止。 

语法 

CALL [drive:][path]filename [batch-parameters] 

参数 

[drive:][path]filename 
指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。 


batch-parameters 
指定批处理程序所需的命令行信息。 

------------------------------- 

PAUSE 

暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。只能在批处 
理程序中使用该命令。 

语法 

PAUSE 


REM 

在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令(在CONFIG.SYS 
中也可以用分号 代替REM命令,但在批处理文件中则不能替代)。 

语法 

REM [string] 

参数 

string 
指定要屏蔽的命令或要包含的注解。 
======================= 

例1:用edit编辑a.bat文件,输入下列内容后存盘为c:a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。 

批处理文件的内容为: 命令注释:

 

 

 

 

 

下面弄几个例子玩下. 代码copy至txt 然后重命名成bat文件

 

1.获取当前时间戳. 可做为命名.

@echo off
set date0=%date:~0,10%
set time0=%time:~1,8%
set dttm=%date0:-=%%time0::=%
echo 当前时间为%date0%_%time0% 缩写成:%dttm%&&pause >nul

原创粉丝点击