批处理之新窗口执行命令的脚本
用bat脚本打开新窗口输出hello world:
start "" cmd /k "echo hello world"
""表示新窗口没标题或者标题为空
/k表示执行完命令不关闭新窗口,/c表示执行完关闭窗口
1、用bat脚本打开一个新窗口,标题为tom,输出hello,两秒后输出world
timeout /t 2倒计时两秒,也有人喜欢用ping,(ping 127.1 –n 2 >nul)
输出多个命令之间需要用&&符号,都在新窗口输出需要用""引号标注,如果不打"",第一个命令后面的将在启动脚本窗口执行,不会在新窗口执行
start "tom" cmd /k "echo hello&& timeout /t 2 && echo world"
2、如何将新打开的窗口取消掉编辑插入模式,防止鼠标点击新窗口导致窗口卡住,服务不运行
在脚本最前面复制一下命令,脚本中新打开的窗口都会默认关闭编辑和插入模式
reg add HKEY_CURRENT_USER\Console /v QuickEdit /t REG_DWORD /d 00000000 /f
3、如何控制新打开窗口大小
脚本开头定义变量
set evn1=mode con cols=70 lines=25
cols为窗口长度,lines为窗口宽度(是不是百分比不太清楚)
调用变量方法:%evn1%
start "tom" cmd /k "%evn1% && echo hello&& timeout /t 2 && echo world"
4、手动设置标题
title kimi start "" cmd /k "%evn1% &&title kimi && echo hello&& timeout /t 2 && echo world"
5、设置地址
在E盘a目录下打开新窗口
start "" /d E:\a cmd /k "echo hello world"
综合:
创建一个批处理脚本,在E盘a目录下,打开一个标题为a的窗口,大小设置,对a目录下的git代码进行更新,打包,并启动子目录target中test.jar包
@echo off ::======配置变量======== rem 这个单词开头的为注释信息 rem 设置地址path_a set path_a=E:\a rem 设置窗口大小 set evn1=mode con cols=70 lines=25 ::======开始运行======== rem 禁止新窗口启动编辑插入模式 reg add HKEY_CURRENT_USER\Console /v QuickEdit /t REG_DWORD /d 00000000 /f start /d E:\a cmd /k "%evn1% && git pull && mvn install && cd target && title a && java -jar test.jar"
rem 脚本结尾最后加上pause,执行完脚本还在等待任意输入,退出,如果不加脚本执行完直接关闭脚本执行窗口
补充:windows bat如何启动一个新的cmd窗口并在其内执行命令
两种方式:
1,
start cmd /k echo Hello, World!
2,
start cmd /C pause
区别是第二种执行完毕以后,新开的窗口会自动关闭,第一种则不会
参考:http://stackoverflow.com/questions/9392874/bat-file-open-new-cmd-window-and-enter-code-in-there