>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
BAT延时
bat本省不提供延时程序,所以有时候程序需要延时就比较麻烦,可以用下面的方法延时:
a.bat:
cscript //nologo sleep10s.vbs
sleep10s.vbs
WScript.Sleep 1000 ' 这里单位是ms
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
tee
' usage: dir | cscript //nologo tee.vbs cmd.log
set StdIn=WScript.StdIn
set StdOut=WScript.StdOut
set Args=WScript.Arguments
LogFile=Args(0)
set fso=CreateObject("Scripting.FileSystemObject")
set LogFile=fso.CreateTextFile(Args(0))
Do While Not StdIn.AtEndOfStream
Str=StdIn.ReadLine
StdOut.WriteLine str
LogFile.WriteLine str
Loop
LogFile.Close
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
xcopy
xcopy w:/aaa.tar.gz v:/ /H/I/R/Y
if Not %ERRORLEVEL% == 0 (
echo "something"
pause
exit 1 )
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
plink
plink -pw password root@160.10.205.100 /opt/Build/AutoBuild.sh
c
自宫程序
以前有一个无聊的脚本,需要在启动脚本大约2分钟之后将一个叫做DailyBuild_Test.exe的无聊程序杀掉,才能保证脚本运行之后得到正确的结果,所以有了下面的程序,主要的思路就是利用计划任务来实现程序运行2分钟后杀进程。
YES文件,内容就只有一个字符y,用于计划任务的交互程序中输入y。
KEY文件,内容是password<ENTER>,用于计划任务输入密码和回车。
exit_DailyTest.bat
set Kill_DailyTest_Timer = 2
schtasks /create /sc minute /mo %Kill_DailyTest_Timer% /tn "exit_DailyTest" /tr "e:/DailyBuild/exit_DailyTest2.bat" < KEY
exit_DailyTest2.bat
taskkill /F /IM DailyBuild_Test.exe /T
schtasks /delete /TN "exit_DailyTest" < YES
exit 0
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
for
for /f "tokens=1,2 delims= " %%i IN (list.txt) do ss get %%i -v %%j -W -i-y
tokens=1,2表示有两个变量
delims= 表示变量用空格隔开
IN (list.txt)表示从list.txt中读取变量的值
do为执行命令,这里%%i表示文件路径
%%j是版本号,-W可写,-i-y表示yes to all,这些事ss命令的参数
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
获取当前时间
set Today=%DATE:~5,2%%DATE:~8,2%
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
VSS命令
SSPATH="C:/Program Files/microsoft virsual studio/vss/win32"
set SSDIR=//SERVICE/DIR
set SSUser=user
set SSPassword=password
' 设置工作目录和本地目录
ss cp $/09.dir/01.dir
ss workfold $/09.dir/01.dir %CD%
ss get 03.dir/ TODAY% -W -i-y -R ' R表示递归文件夹