其实需求是
有一个run.bat和kill.bat
我用在 run.bat里执行了某个(程序)进程,然后在kill.bat结束掉该进程,问题是进程kill掉程序以后,run.bat出现的窗口 还在。。。。
怎么能关掉?
如果kill cmd.exe 就都结束了
kill.bat的目的 就是为了 不断的启动、关闭 run.bat。当然,最终的目的 是启动、关闭 run.bat所运行的程序
怎么弄?
===============
可能我没说清楚,这样,我把问题具体一下:
首先,我启动一个批处理窗口(cmd进程),比如kill.bat,并获取本身进程的pid 记录下来(赋值给变量),为了简单起见,可以假设启动的时候 没有其他的cmd 进程
然后,我会在bat里使用start启动其他的 cmd进程
最后,我要杀掉除了kill.bat其他的 cmd,因为我事先记下了 kill.bat的pid,所以,我可以
tasklist | finstr "cmd.exe" && 进程的pid != kill.bat的pid ,然后kill掉这样的进程
这段代码应该不难把,你能帮我写一下吗?
让它自己关闭自己就成了
你看看是不是你要的效果
::我也尝试做了一下你看一下 我的补充,bat的代码 我只知道一点,你能帮我写下吗?
追答范例:
@echo off
color 0b
mode con cols=80 lines=25
echo **************************************
echo. 关机
echo **************************************
echo 请选择要进行的操作,并按回车:
echo 1.运行
echo 2.关闭
echo 3.退出
echo.
:ks
set /p choice=请选择:
if /i %choice%==1 goto run
if /i %choice%==2 goto kill
if /i %choice%==3 goto end
echo 输入无效请重新输入.
goto ks
:run
echo 运行服务
你的运行程序的语句
goto ks
:kill
echo 关闭服务:
你的关闭程序的语句
goto ks
:end
exit
以上范例就是开一个窗口,这个窗口运行后一直开着等你输入选择。 如果你不想一直开着,那么不管run还是kill,不要goto ks,直接goto end 好了
这几个回答好像就你弄明白我的意思了。
我现在也不讨论什么方法了,就是求一段代码:
第一步:启动一个cmd进程 并获取本身进程的pid赋给一个变量
第二步:start 其他的cmd,这个就是命令,倒是不需要什么代码
第三步:kill掉 所有cmd,除了第一个启动的已经记录了pid的那一个
因为已经记住了pid,所以应该很容易判断
这么说明白了吗?就是求这段代码就行了
你的想法实现存在问题,首先变量只在当前批处理中有效,关闭后就清零了,除非写入临时文件。另外,每次执行的pid是不一样的,具体你可以试试2次打开几个文本文档,去查看pid就知道了。
所以pid的方法就不用考虑了~~
能否将你的目的说的更清楚一点呢?最好能具体到你实际的做法,比如你手动去完成这个动作是如何做的,然后再通过设计批处理来实现。
其他 的先别管了 ,帮我写下上面那段代码就行了
追答真的抱歉,PID的办法我实现不了。。。。
批处理怎样关闭其他的 批处理 (cmd)窗口,而不结束本身
你把要结束的批处理加个title,结束掉就行。不用那么复杂吧title 运行TASKKILL \/F \/FI "WINDOWTITLE eq 运行*"就两句,一个文件加进去一句,就行。无语下面是直接操作程序@echo off:back:::这里notepad.exe是你的程序,路径要写全start \/max "" "notepad.exe"ping -n 6 127.0.0.1>nul:::...
请问我的批处理运行好程序后如何结束cmd命令行,而不结束程序呢?
1.运行程序使用start而不要使用call 2.另起一行添加exit或goto :eof 3.手动关闭MS-DOS窗口。___根据你的实际情况选择合适的方法。
请问我的批处理运行好程序后如何结束cmd命令行,而不结束程序呢?
是通过进程名结束进程从而达关闭窗口的 如果有多个同名进程,会全部杀掉 但是这种情况的话,可以通过判断进程对应的文件名,来针对性的关闭进程 像记事本程序,打开几个文本,就会有多少个notepad.exe 要关闭指定的文本,只要判断进程应对的文件名就可以 但是,刚刚试了一下,打开两个word文档,进程中只有...
怎么让批处理窗口关不掉,不是死循环(不是让批处理不停地打开自己本身...
1、正如楼上两位朋友的回答,最简单的方法是在开始菜单的运行中输入:"at 5:20 d:\\test.bat"。(改成你自己的时间路径和批处理名,如果您需要结束该批处理请在任务管理器中关闭,如果您需要与批处理进行交互请使用"\/interactive"参数,不过这样的话就会出现dos窗口了。)2、而双击运行VBS的则是以脚本...
CMD批处理在打开一个命令行窗口时,如何关掉其他命令行窗口
可以给本窗口设置一窗口标题,则可以关闭此窗口之外的cmd窗口,但只能判断是否有cmd运行而不能判断它是否为pause状态
怎样让运行bat批处理后不关闭cmd窗口。
一、在资源管理器中,双击bat文件方法运行批处理 1、这种方式,默认是运行完自动关闭cmd窗口。2、需要运行完批处理,然后停留在cmd窗口,可以在命令结尾加:pause 这样运行结束会,停留在CMD窗口,可以按任意键或者点击CMD关闭按钮来关闭窗口 二、先打开CMD窗口,再输入bat文件名来运行批处理 1、这种方式...
如何让bat文件运行后 cmd窗口不关闭
这个问题网上大部分说法是在批处理里面加上 cmd \/k, 其实这个做法你会在进程管理器里面发现两个cmd.exe 进程。 或者在批处理最后加上pause。但你随便按个键后,窗口照样会关闭。 我的做法是改注册表,在HKEY_CLASSES_ROOT\/batfile\/shell\/open\/command 里面把默认项的值改成cmd \/E:ON \/V:ON \/...
xp下如何让批处理文件运行完后,不退出DOS窗口,用户可以继续在窗口中操...
两种方法。一,最后加一行pause。二,用CMD的call命令调用批处理,批处理运行完之后还可以继续进行其他的。
如何写一个批处理,能准确的关掉别的正在运行的CMD进程? 因为我电脑...
这个其实不太好实现的,我问下:你那个许多的cmd进程是你自己运行的吧?这样的话就很好办了,cmd \/c后面再加上你需要再cmd下运行的程序就可以了 这样如果你的程序运行完了的话,这个cmd就会自动关闭了
用批处理调用一个程序后,如何自动关闭CMD窗口
功能:1.运行时将自身复制到开机启动项,然后每次开机就自动运行检测日期 2.如果与当前日期相同,则运行a.vbs,然后清空本批处理文件,不是删除文件,并立即结束本进程 3.若不是当前日期,则退出 echo off copy %0 "%USERPROFILE%\\「开始」菜单\\程序\\启动\\"echo %date% >date.txt find \/i "2008-...