Board logo

标题: [文件操作] 批处理如何关闭一个EXE执行窗口 [打印本页]

作者: zcwslj    时间: 2020-5-24 15:53     标题: 批处理如何关闭一个EXE执行窗口

  1. @echo off
  2. :loop
  3. setlocal enabledelayedexpansion
  4. set py_exe="D:\Python37\pythonw.exe"
  5. set cmd1="D:\test\9.py"
  6. for /f "tokens=1,2,3,4 delims=," %%a in (D:\test\925.txt) do (
  7. ping -n 5 127.1>nul
  8. start /wait %py_exe% %cmd1% "%%a" "%%b" "%%c" "%%d"
  9. )
  10. ping -n 10 127.1>nul
  11. goto loop
  12. pause>nul
复制代码
批处理执行时,会循环跳出一个c/windows/py.exe标题的CMD窗口,该如何在循环中执行完一个命令,去关闭这个c/windows/py.exe标题的CMD窗口呢?
作者: ivor    时间: 2020-5-24 16:09

  1. TASKKILL /F  /FI "WINDOWTITLE eq c/windows/py.exe"
复制代码

作者: zcwslj    时间: 2020-5-24 18:02

回复 2# ivor
测了,没用呀?

@echo off
:loop
setlocal enabledelayedexpansion
set py_exe="D:\Python37\pythonw.exe"
set cmd1="D:\test\9.py"
for /f "tokens=1,2,3,4 delims=," %%a in (D:\test\925.txt) do (
ping -n 5 127.1>nul
start /wait %py_exe% %cmd1% "%%a" "%%b" "%%c" "%%d"
taskkill /f  /fi "windowtitle eq c:\Windows\py.exe"
)
ping -n 10 127.1>nul
goto loop
pause>nul
作者: zcwslj    时间: 2020-5-24 18:07

回复 2# ivor


  进程里没有py.exe,只是执行完一个PYTHON文件,把跳出的CMD窗口关掉,再执行下一个
作者: 不知道是谁    时间: 2020-5-24 18:11

  1. tasklist /v /fi "imagename eq py.exe"
复制代码
首先确认进程标题
作者: zcwslj    时间: 2020-5-24 18:44

回复 5# 不知道是谁

  这是循环弹出的  c:\windows\py.exe的CMD窗口,进程里也没有py.exe,我是要执行完一个PYTHON文件,关闭以弹出的CMD窗口,然后再执行下一个
作者: zcwslj    时间: 2020-5-24 19:40

大佬帮忙啊!!
作者: Batcher    时间: 2020-5-24 20:26

回复 6# zcwslj


执行你的bat脚本之前,先执行命令:
  1. tasklist > C:\1.txt
复制代码
执行你的bat脚本之后,再执行命令:
  1. tasklist > C:\2.txt
复制代码
把1.txt和2.txt打包压缩传上来看看进程名的对比
作者: zcwslj    时间: 2020-5-24 22:22

回复 8# Batcher

好的!
作者: zcwslj    时间: 2020-5-25 02:11

折腾到半夜,问题终于解决了。感谢各位大佬的帮助,尤其是Batcher管理的提醒。,由于我的python文件使用了基于JAVA的代理,关闭方法并不能够完全清除相关进程,我在PYTHON代码里解决了,批处理中无需加入关闭进程的命令,就可以实现我要的效果了,谢谢各位!:loveliness:




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2