因为发现服务器上定时运行的bat脚本出现session无法释放的问题,暂时没有定位到具体原因,先每天重启一下脚本强制释放。
由于服务器上运行了十几个脚本,进程都是cmd,所以需要通过title或者pid来结束对应的那个bat脚本。
首先,要先通过tasklist命令找到你运行的bat的window title,后面主要通过这个来找到需要结束的进程。

@ECHO OFF
TITLE 每天早上重启LINK脚本
CD D:MYPROGRAM

SET scheduleT=750 //有些服务器上的时间显示格式,hh:mm:ss之后,第一位还是空值,所以这里就从第二位开始取。

:CURRENT
ECHO 当前时间:%time:~1,1%%time:~3,2% 计划时间:%scheduleH%
IF NOT EXIST D:MYPROGRAMlog%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%*.TXT ( //正是因为前面设置了750这个时间,一天有两次,所以通过判断是否有log文件来避免运行第二次。
IF %time:~1,1%%time:~3,2% EQU %scheduleT% (
REM 如果你的程序需要时间退出,可以在这里写延时
ECHO ------等待LINK线程退出------35秒--------
CSCRIPT /nologo wait.js 35
ECHO ------强制结束LINK进程-------
TASKKILL /FI "WINDOWTITLE eq huahuoding的运行程序" > D:MYPROGRAMlog%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%time:~1,1%%time:~3,2%%RANDOM%.TXT
ECHO ------重新运行LINK脚本-------
START D:MYPROGRAMRUN_HUAHUODING.BAT
ECHO DONE >> D:MYPROGRAMlog%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%*.TXT
)
)
:NEXT
CSCRIPT /nologo wait.js 30
GOTO :CURRENT

只是一个简单的功能,还有很多需要完善的地方,还是先尽快找到session无法释放的原因吧(; ̄O ̄)