为python脚本创建BAT文件

Jos*_*osh 50 python batch-file

如何创建一个简单的BAT文件来运行位于C:\ somescript.py的python脚本?

非常感谢

MK.*_*MK. 60

c:\python27\python.exe c:\somescript.py %*
Run Code Online (Sandbox Code Playgroud)

  • 好吧,你需要先安装python.访问www.python.org并下载2.7版 (4认同)
  • 如果您希望永远不会显示命令窗口,则可以通过将`python.exe`与`pythonw.exe`进行交换来使用pythonw可执行文件. (4认同)
  • @alwbtc你把你的脚本称为`pythonw myscript.py`或只是`./ myscript.py`?如果是后者,请将扩展名更改为".pyw"并重试. (3认同)
  • 嗨MK-当我打开记事本时,粘贴你的线并保存并尝试通过Windows调度程序运行它,命令行窗口打开一瞬间然后关闭.我没有在C中看到python27文件夹:\这是一个问题吗? (2认同)
  • %*传递所有参数,%1仅传递第一个参数。 (2认同)

Hug*_*ell 42

打开命令行(Windowskey + R,'cmd',<enter>)并键入'python -V',<enter>.

你应该得到回复,比如'Python 2.7.1'.

如果不这样做,您可能没有安装Python.先解决这个问题.

拥有Python后,您的批处理文件应如下所示

@echo off
python c:\somescript.py %*
pause
Run Code Online (Sandbox Code Playgroud)

这将在脚本完成后保持命令窗口打开,这样您就可以看到任何错误或消息.一旦您满意,您可以删除"暂停"行,命令窗口将在完成后自动关闭.

  • 谢谢,但是`@echo off`和'%*'是什么意思? (6认同)
  • @the_prole为`@echo off`看看 - > https://technet.microsoft.com/en-us/library/bb490897.aspx?f=255&MSPPError=-2147217396和`%*`可以取任意数量的参数. (2认同)
  • 你好。这个答案是错误的。你怎么知道python的路径被添加到环境变量中了?如果不是,这将不起作用。 (2认同)

小智 11

只需在python脚本的同一文件夹中打开一个包含这两行的批处理文件:

somescript.py
pause
Run Code Online (Sandbox Code Playgroud)


npo*_*aka 10

以下是如何将批处理代码和python代码放在​​单个文件中:

0<0# : ^
''' 
@echo off
echo batch code
python %~f0 %*
exit /b 0
'''

print("python code")
Run Code Online (Sandbox Code Playgroud)

'''分别启动和结束的蟒蛇多行注释.

0<0# : ^更有趣的是 - 由于批处理中的重定向优先级,它将被:0<0# ^批处理脚本解释,批处理脚本是一个标签,执行将不会显示在屏幕上.最后的插入符将转义为新行,第二行将附加到第一行.对于python,它将是0<0语句和内联注释的开始.

这归功于西伯利亚人

  • @npocmaka 使用 `0&lt;0# : ^` 可以正常工作,但在使用 Black 格式化后就不行了。(给出 `0 &lt; 0 # : ^`) (2认同)

Han*_*zel 6

You can use python code directly in batch file, https://gist.github.com/jadient/9849314.

@echo off & python -x "%~f0" %* & goto :eof
import sys
print("Hello World!")
Run Code Online (Sandbox Code Playgroud)

See explanation, Python command line -x option.


Chr*_*arr 5

如果您已将Python添加到PATH,则也可以像这样简单地运行它。

python somescript.py
Run Code Online (Sandbox Code Playgroud)

  • 一个选择是在每个python版本的exe中制作一个副本,然后重命名为唯一的名称。python2.7.exe,python3.6.exe等。然后在命令行中可以像python3.6 somescript.py一样调用它 (2认同)
  • 是的,显然很可怕,但确实有效(为什么我没有想到这一点?)。我也认为36优于3.6和27优于2.7,这可能会引起混乱。 (2认同)