[20170425]变态的windows批处理2.txt
--//正在写一个批处理脚本,我想在开始执行命令前加入时间。
--//直接输入time不行的,于是我现在命令行测试:
D:\tools\linux\usr\local\wbin>echo | time
当前时间: 15:17:46.68
输入新时间: ECHO 处于打开状态。
系统无法接受输入的时间。
输入新时间:
或者
D:\tools\linux\usr\local\wbin>prompt | time
当前时间: 15:19:34.95
输入新时间:
--//再想办法取第一行。
D:\tools\linux\usr\local\wbin>prompt | time | head -1
head: write error: Invalid argument
head: write error
head: write error: Invalid argument
head: write error: Invalid argument
--//报错!! 看了time命令帮助:
D:\tools\linux\usr\local\wbin>time /?
显示或设置系统时间。
TIME [/T | time]
显示当前时间设置和输入新时间的提示,请键入
不带参数的 TIME。要保留现有时间,请按 Enter。
如果命令扩展被启用,TIME 命令会支持 /T 命令行开关;该命令行开关告诉
命令只输出当前时间,但不提示输入新时间。
D:\tools\linux\usr\local\wbin>prompt | time /T
15:21
D:\tools\linux\usr\local\wbin>prompt | time | grep "当前时间"
grep: writing output: Invalid argument
--//昏,不支持到秒,ms什么设计命令行的。而且很明显time不支持管道命令。想到unxutil里面也有一个date命令。
D:\tools\linux\usr\local\wbin>D:\tools\linux\usr\local\wbin\date "+%T"
15:23:46
--OK,现在可以了。开始写批处理脚本:
R:\>cat a.bat
D:\tools\linux\usr\local\wbin\date "+%T"
--//执行a批处理命令:
R:\>a
R:\>D:\tools\linux\usr\local\wbin\date "+T"
T
--//昏,输出T。丢掉了百分号。改成加2个百分号。
R:\>cat a.bat
D:\tools\linux\usr\local\wbin\date "+%%T"
R:\>a
R:\>D:\tools\linux\usr\local\wbin\date "+%T"
15:26:18
--//这样就ok了。
--//我建立的脚本比较特殊,需要先将脚本输出到一个批处理中,拼接以后再调用执行。于是修改如下:
R:\>cat a.bat
echo D:\tools\linux\usr\local\wbin\date "+%%T" > bb.bat
call bb.bat
pause
--//执行:
R:\>a
R:\>echo D:\tools\linux\usr\local\wbin\date "+%T" 1>bb.bat
R:\>call bb.bat
R:\>D:\tools\linux\usr\local\wbin\date "+T"
T
R:\>pause
请按任意键继续. . .
---//再次输出T,也就是要实现这样的调用,我要使用4个百分号。
R:\>cat a.bat
echo D:\tools\linux\usr\local\wbin\date "+%%%%T" > bb.bat
call bb.bat
pause
R:\>a
R:\>echo D:\tools\linux\usr\local\wbin\date "+%%T" 1>bb.bat
R:\>call bb.bat
R:\>D:\tools\linux\usr\local\wbin\date "+%T"
15:31:31
R:\>pause
请按任意键继续. . .
--//终于ok了,windows的批处理真不好写。