为python脚本创建BAT文件

为python脚本创建BAT文件,python,batch-file,Python,Batch File,如何创建一个简单的BAT文件来运行位于C:\somescript.py的python脚本?打开命令行(⊞ Win+R,cmd,↵ 输入) c:\python27\python.exe c:\somescript.py %* 并键入python-V,↵ 进入 您应该会得到回复,比如python2.7.1 如果没有,则可能没有安装Python。首先解决这个问题 一旦有了Python,批处理文件应该如下所示 @echo off python c:\somescript.py %* pause 这将

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

打开命令行(⊞ Win+R,
cmd
,↵ 输入)
c:\python27\python.exe c:\somescript.py %*
并键入
python-V
,↵ 进入

您应该会得到回复,比如
python2.7.1

如果没有,则可能没有安装Python。首先解决这个问题

一旦有了Python,批处理文件应该如下所示

@echo off
python c:\somescript.py %*
pause

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

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

somescript.py
pause

下面是如何将批处理代码和python代码放在一个文件中:

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

print("python code")

0如果您已经将Python添加到路径中,那么您也可以像这样简单地运行它

python somescript.py
---xxx.bat---

---yyy.py---


如果这是与当前目录不同的目录中的BAT文件,您可能会看到类似“python:无法打开文件'somescript.py':[Errno 2]没有这样的文件或目录”的错误。这可以通过使用
%~dp0
指定BAT文件的绝对路径来解决


(通过这种方式,您可以忽略
c:\
或其他内容,因为您可能希望移动此脚本)

您可以在批处理文件中直接使用python代码,

请参阅说明。

开始xxx.py

您可以将其用于其他一些文件类型。

我这样做并起作用:
ECHO OFF
set SCRIPT_DRIVE = %1
set SCRIPT_DIRECTORY = %2
%SCRIPT_DRIVE%
cd %SCRIPT_DRIVE%%SCRIPT_DIRECTORY%
python yourscript.py`
我的项目在D:中,我的批处理文件在桌面上,如果你在同一个驱动器中,只需忽略第一行并更改第二行中的de D目录

在第二行更改文件的文件夹,将文件夹

在第三行中,更改文件名

D:
cd D:\python\u proyects\example\u folder\

python示例_file.py

与Npcmaka的解决方案类似,如果批处理文件中除了python代码外还有多行批处理代码,请检查以下内容:

这段代码的作用是将所有批处理代码放入一个多行字符串中,以python文件的形式运行。该字符串的开头位于一个名为rem的变量中,以使批处理代码将其作为注释读取。python代码中包含
@echo off
的第一行由于
-x
参数而被忽略

必须指出的是,如果要在批处理代码中使用
\
,例如在文件路径中,则必须使用
r“…”
将其包围,以将其用作无转义序列的原始字符串

@echo off
rem = r"""
...
"""
以下是语法: “python.exe路径”“python脚本路径”暂停

基本上会发生什么?屏幕会出现几秒钟,然后熄灭。注意以下两件事:

  • 保存文件时,您将扩展名指定为bat文件,但将其另存为txt文件,而不是所有文件和编码ANSI
  • 如果程序仍然没有运行,请将批处理文件和python脚本保存在同一文件夹中,并在环境变量中指定此文件夹的路径


  • Hi MK-当我打开记事本,将您的行粘贴到其中并保存,然后尝试通过windows scheduler运行它时,commandline窗口会在瞬间打开,然后关闭。我没有在C:\中看到python27文件夹,这是一个问题吗?嗯,您确实需要先安装python。转到www.python.org并下载版本2.7如果您不想让命令窗口显示,您可以使用pythonw可执行文件,方法是将
    python.exe
    pythonw.exe
    @alwbtc交换
    pythonw myscript.py
    还是仅仅
    /myscript.py
    ?如果是后者,请将扩展名更改为
    .pyw
    ,然后重试。%*传递所有参数,%1只传递第一个参数。谢谢,但是
    @echo off
    %*
    的含义是什么?@查看->和
    %*
    的程序可以接受任意数量的参数。您好。这个答案是错误的。您如何知道python的路径被添加到了环境变量中?如果不是,这将不起作用。
    python-ic:\somescript.py%*
    在运行脚本后在同一环境中打开python的交互模式,因此您可以检查全局变量以进行调试。如果我不希望它在运行后保持打开状态,并在开始运行后立即关闭,该怎么办?类似于pythonw所做的事情?是否可以给出完整的代码,而不是文件名???@RachitGupta somescript.py在上面的示例中是您想要使用的python脚本的文件名launch@Itsatrap是的,请参阅本页上Npcmaka、Hans Ginzel、Michael Villani的答案,可能还有更多答案。是的,这很简单,如果您有多个Python安装(例如2.7和3.6),那么就不太好了。Python几乎总是添加到path中,所以我认为这不是一个太大的问题。一个选择是在每个Python版本的exe中创建一个副本,并重命名为唯一的名称。python2.7.exe、python3.6.exe等。然后在命令行中,您可以像python3.6 somescript.pyyes一样调用它,非常明显,非常有效(为什么我没有想到这一点?)。此外,我认为36比3.6和27更好,2.7这一点可能会引起混乱。请解释一下你的脚本是做什么的。这样读起来容易多了。
    %~f0
    应该用引号括起来:
    “%~f0”
    ,否则将不会处理带有空格或其他特殊符号的路径。要查看此内容,请将此文件称为“My first script.bat”或将其放置在文件夹“c:\My scripts”中。完成后,如何使批处理文件暂停?我不能在任何地方添加暂停。您也可以在python代码中添加暂停,请参见
    @echo off
    python %~dp0\somescript.py %*
    
    @echo off & python -x "%~f0" %* & goto :eof
    import sys
    print("Hello World!")
    
    ECHO OFF
    set SCRIPT_DRIVE = %1
    set SCRIPT_DIRECTORY = %2
    %SCRIPT_DRIVE%
    cd %SCRIPT_DRIVE%%SCRIPT_DIRECTORY%
    python yourscript.py`
    
    @echo off
    rem = """
    echo some batch commands
    echo another batch command
    python -x "%~f0" %*
    echo some more batch commands
    goto :eof
    
    """
    # Anything here is interpreted by Python
    import platform
    import sys
    print("Hello world from Python %s!\n" % platform.python_version())
    print("The passed arguments are: %s" % sys.argv[1:])
    
    @echo off
    rem = r"""
    ...
    """
    
    "C:\Users\hp\AppData\Local\Programs\Python\Python37\python.exe" "D:\TS_V1\TS_V2.py"
    pause