bat

让Python文件也可以当bat文件运行

笑着哭i 提交于 2019-12-05 05:37:17
有没有想过让一个python源文件也能像bat批处理文件那样运行?下面给大家演示一下一个小小的trick。 # || cd "%~dp0" && python "%~0" && goto :eof print "Hello, world!" 把上面的代码保存成一个bat文件,暂且命名为test.bat吧。先看一下运行结果: 下面这句是来到脚本的路径之下。 cd "%~dp0" 而%~0是指当前脚本的名称。 goto :eof 则是直接跳到脚本的末尾。 上面的脚本巧用的是#字符和||。#在Python中是注释字符,而||却在批处理脚本中是或短路运算。 不过上面还有一点小问题,会输出说#不是一个可识别的命令。对于这个问题,可以利用重定向的方法来屏蔽这个错误。最终的代码就是这样: # > nul 2>&1 || cd "%~dp0" && python "%~0" && goto :eof print "Hello, world" 把输出定向到空设备,并连接标准输出和错误输出(其实不连接而只重定向错误输出也可以的)。最后的结果是这样的: 到此,基本实现了把python脚本当bat文件运行,而且还用python运行这个脚本!这样就可以用一个文件来运行了!这个方法应该还可以举一反三,可以试一下其他脚本了。除了一点小小的问题:不能隐藏命令的显示,即在运行命令的时候会先显示第一行命令,然后才执行

windows守护tomcat的bat批处理脚本

我们两清 提交于 2019-12-01 18:44:49
通过判断8080端口是否有进程在监听来启动tomcat :RESTART netstat -an | find /C "0.0.0.0:8080" > temp.txt set /p num=<temp.txt del /F temp.txt if %num%==0 start /D "C:\utils\apache-tomcat-7.0.65\bin\" startup.bat echo Wscript.Sleep WScript.Arguments(0) >sleep.vbs cscript //b //nologo sleep.vbs 5000 goto RESTART 通过判断是否有Java进程在来启动tomcat,如果有多个Java程序可能会不准确 将 netstat -an | find /C "0.0.0.0:8080" > temp.txt 替换为 tasklist | find /C "java.exe" > temp.txt 可以增加进程的启动用户来增加进程判断的准确性 tasklist /FI "username eq administrator" | find /C "java.exe" > temp.txt 该脚本运行后会出现一个dos窗口,若觉得碍眼可以用记事本将下面保存为扩展名为.vbs的文件。其中guard.bat是上面批处理保存的文件名