加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows shell中的“Bootstrap”python脚本,没有.py / .pyw关联

发布时间:2020-12-14 04:06:47 所属栏目:Windows 来源:网络整理
导读:有时(在客户的PC中)我需要一个 python脚本在 Windows shell中执行,如.CMD或.BAT,但没有与PYTHON / PYTHONW关联的.py或.pyw扩展名. 我推出了一对’quick’n dirty’解决方案: 1) """e:devtoolpythonpython.exe %0 :: or %PYTHONPATH%python.exegoto eof:
有时(在客户的PC中)我需要一个 python脚本在 Windows shell中执行,如.CMD或.BAT,但没有与PYTHON / PYTHONW关联的.py或.pyw扩展名.

我推出了一对’quick’n dirty’解决方案:

1)

"""
e:devtoolpythonpython.exe %0 :: or %PYTHONPATH%python.exe
goto eof:
""" 
# Python test
print "[works,but shows shell errors]"

2)

@echo off
for /f "skip=4 delims=xxx" %%l in (%0) do @echo %%l | e:devtoolspythonpython.exe
goto :eof
::----------

# Python test
print "[works better,but is somewhat messy]"

你知道更好的解决方案吗? (即:更简洁或优雅)

更新:

基于@van回答,我找到了更简洁的方法(没有设置ERRORLEVEL)

@e:devtoolspythonpython.exe -x "%~f0" %* & exit /b

### Python begins....
import sys

for arg in sys.argv:
    print arg

raw_input("It works!!!n")

###
你可以尝试创建一个python和windows shell脚本的脚本.在这种情况下,您可以将文件命名为my_flexible_script.bat并直接或通过python执行….

查看pylint中pylint.bat文件的内容:

@echo off
rem = """-*-Python-*- script
rem -------------------- DOS section --------------------
rem You could set PYTHONPATH or TK environment variables here
python -x "%~f0" %*
goto exit

"""
# -------------------- Python section --------------------
import sys
from pylint import lint
lint.Run(sys.argv[1:])


DosExitLabel = """
:exit
exit(ERRORLEVEL)
rem """

它与您的操作类似,但具有更多兼容的双脚本支持.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读