windows下使用批处理文件调用python程序
这个随笔涉及到几个批处理脚本得知识点。
windows的start命令, 启动另一个窗口运行指定的程序或命令。
windows的call命令, 从批处理程序调用另一个程序, 直到被调用程序退出, 再继续原先的批处理程序
参数: windows, %0为shell 本身, %1为第1个参数, 以此类推
linux, $0为shell 本身, $1为第1个参数, 以此类推
返回值: windows:当一个命令完成后, 可以使用 %errorlevel% , 获得 exit code
linux: 可以使用$?得到上个命令的exit code
永久环境变量:
windows, 在操作系统环境变量中设置的变量
linux: 在profile文件中, 使用export命令定义的变量
临时环境变量:
windows, 在前一个bat中使用 Set 命令设置了一个环境变量, 后面的bat文件就可直接使用该环境变量
linux, 在前一个script使用=号设置了一个环境变量, 后面的script文件拿不到该变量值, 除非使用export命令, 也即是说=设置的环境变量作用域是local的, export设置的变量时global的.
windows是不区分local变量和global变量的做法, 会pollute变量的. 为此windows 引入了 setlocal 和 endlocal命令, 在这两个命令直接set的变量即为local变量, 否则就是global变量.
下面是一个 Windows 示例, 启动python程序, 中间涉及到PYTHONPATH环境变量, 我采用了 setlocal 方式, 避免污染OS的PYTHONPATH环境变量.
rem --- batch file: fron_profile.bat
SET MY_PYTHON=C:pythonenvpython27_flaskScriptspython.exe
SET PACKAGE_PARENT_PATH=D:trunkCronAnyWheresrc
SET PYTHONPATH=%PACKAGE_PARENT_PATH%
rem --- batch file: fron_importfromcrontab.bat
setlocal
call fron_profile.bat
%MY_PYTHON% %PACKAGE_PARENT_PATH%frondeamonfron_importfromcrontab.py app_domain=%1 crontab_file=%2
endlocal
rem --- batch file: fron_timeoutmonitor.bat
setlocal
call fron_profile.bat
%MY_PYTHON% %PACKAGE_PARENT_PATH%frondeamonfron_timeoutmonitor.py
endlocal
windows下使用批处理文件调用python程序的更多相关文章
- 6.python在windows下用批处理文件在运行中输入程序名直接运行的方法
最近由于平时自由时间比较多,在看一本python入门书籍,在里面学习了一种用windows下的批处理文件在电脑运行界面中直接输入程序名称就可运行的方法,现将其详细说明如下: 1.首先编写一个教程上的程 ...
- java调用python程序以及向python程序传递参数
在做项目的时候,经常会碰到这个问题,主要程序是用java写的,有些功能使用python写的,整个项目需要把java代码和python代码进行整合,在一个项目里面运行,这就涉及到java调用python ...
- Window环境下,PHP调用Python脚本
参考 php调用python脚本*** php 调用 python脚本的方法 解决办法:php提供了许多调用其他脚本或程序的方法,比如exec/system/popen/proc_open/passt ...
- 在windows中:双击运行Python程序、后台运行Python程序
在windows中:双击运行Python程序.后台运行Python程序 安装Python解释器的windows环境,如果双击运行*.py的文件,会闪退.怎样避免闪退呢? 我们用python的日志输出程 ...
- Windows下使用pip安装python包是报错-UnicodeDecodeError: 'ascii' codec can't decode byte 0xcb in position 0
先交待下开发环境: 操作系统:Windows 7 Python版本:2.7.9 Pip版本:6.1.1 其他环境忽略 在windows下使用pip下载python包,出现如下错误 Collecting ...
- python如何通过windows命令行运行一个python程序文件?
python如何通过windows命令行运行一个python程序文件? cmd 进入到py文件对应目录下或者直接在上面的文件地址栏输入cmd,敲入回车 定位到对应的目录下 输入python xxx.p ...
- 在linux下sh批处理文件调用java的方法
解密 java -classpath collection-impl-0.0.1.jar com.ai.toptea.collection.message.DESEncrypt 1EFE4663895 ...
- Windows下tomcat进程监控批处理程序
在Windows下tomcat进程监控批处理程序脚本如下: @echo off ::tomcat安装目录 set _tomcatDir=E:\myFiles\apache-tomcat-8.5.31 ...
- Java调用Python程序
最近,需要在应用中,需要使用Java程序去调用Python代码,主要有两种实现方式. 一.使用Jython架包 因为调用的Python代码中需要使用Json对象,开始使用jython2.5.2,发现不 ...
随机推荐
- IOS开发之——登录加密也许用到的,反转字符串
- (NSString *)stringByReversed{// NSMutableString *s = [NSMutableString string];// for (NSUInt ...
- 学习笔记——Maven实战(一)坐标规划
坐标是什么?为什么要规划? 坐标是Maven最基本的概念,它就像每个构件的身份证号码,有了它我们就可以在数以千万计的构件中定位任何一个我们感兴趣的构件.举个最简单的例子,如果没有坐标,使用JUnit的 ...
- ViewController与outlet绑定
ViewController的作用 ViewController与XIB一一对应,用于分离独立出可重用组件单元,如单个组件.复合组件.界面片段.整个界面等. 通常继承 UIViewController ...
- libusb(.NET)开源项目使用小结
更多细节请参考官方帮助文档 1,修改设备类型为自己的标识 InfWizard项目里,改掉资源文件LibUsb-Win32-LUDN.Driver.Resources. 原来的三处libusb-win3 ...
- 高校手机签到系统——第一部分Authority权限系统(下)
很抱歉,之前寝室光纤断了,所以到现在才更新这个系列的第二篇博客.点击访问高校手机签到系统——第一部分Authority权限系统(上) 这几天我反思了一下上一篇写博上的方式,一味的贴代码式的,是否应该更 ...
- org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback.....Parameter index out of range (1 > number of parameters, which is 0).;
sql有误,一般是 sql语句少了问号.
- IoC框架(转载)
1 IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 图1:软件系统中耦合的对象 如果 ...
- HDU 1171 Big Event in HDU 多重背包二进制优化
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1171 Big Event in HDU Time Limit: 10000/5000 MS (Jav ...
- java设计优化--观察者模式
观察者模式介绍 观察者模式是一种非常有用的设计模式,在软件系统中,当一个对象的行为依赖于另一个对象的状态时,观察者模式就非常有用.如果不适用观察者模式,而实现类似的功能,可能就需要另外启动一个线程不停 ...
- ovs-agent流程
1. 代码流程分析 neutron/plugins/openvswitch/agent/ovs_neutron_agent.py:main() plugin = OVSNeutronAgent(**a ...