![](/img/trans.png)
[英]Creating a BAT file for loop running python script through whole folder
[英]Creating a BAT file for python script
如何创建一个简单的 BAT 文件来运行位于 C:\somescript.py 的 python 脚本?
c:\python27\python.exe c:\somescript.py %*
打开命令行( ⊞ Win + R , cmd
, ↵ Enter )并输入python -V
, ↵ Enter 。
您应该得到回复,类似于Python 2.7.1
。
如果没有,您可能没有安装 Python。 先解决这个问题。
一旦你有了 Python,你的批处理文件应该看起来像
@echo off
python c:\somescript.py %*
pause
这将在脚本完成后保持命令窗口打开,因此您可以看到任何错误或消息。 一旦您对它感到满意,您可以删除“暂停”行,完成后命令窗口将自动关闭。
以下是将批处理代码和 python 代码放在单个文件中的方法:
0<0# : ^
'''
@echo off
echo batch code
python "%~f0" %*
exit /b 0
'''
print("python code")
'''
分别开始和结束 python 多行注释。
0<0# : ^
更有趣 - 由于批处理中的重定向优先级,批处理脚本将其解释为:0<0# ^
,这是一个不会在屏幕上显示执行的标签。 末尾的插入符号将转义新行,第二行将附加到第一行。对于 python,它将是0<0
语句和内联注释的开始。
归功于西伯利亚人
只需在 python 脚本的同一文件夹中打开一个包含这两行的批处理文件:
somescript.py
pause
如果您已将 Python 添加到您的 PATH 中,那么您也可以像这样简单地运行它。
python somescript.py
您可以直接在批处理文件中使用 python 代码, https://gist.github.com/jadient/9849314 。
@echo off & python -x "%~f0" %* & goto :eof
import sys
print("Hello World!")
请参阅说明, Python 命令行 -x 选项。
--- xxx.bat ---
@echo off
set NAME1="Marc"
set NAME2="Travis"
py -u "CheckFile.py" %NAME1% %NAME2%
echo %ERRORLEVEL%
pause
--- yyy.py ---
import sys
import os
def names(f1,f2):
print (f1)
print (f2)
res= True
if f1 == "Travis":
res= False
return res
if __name__ == "__main__":
a = sys.argv[1]
b = sys.argv[2]
c = names(a, b)
if c:
sys.exit(1)
else:
sys.exit(0)
这是语法:“python.exe 路径”“python 脚本路径”暂停
"C:\Users\hp\AppData\Local\Programs\Python\Python37\python.exe" "D:\TS_V1\TS_V2.py"
pause
基本上会发生什么,屏幕会出现几秒钟,然后关闭,请注意以下两件事:
与 npocmaka 的解决方案类似,如果您的批处理文件中除了 python 代码之外还有不止一行批处理代码,请查看: http : //lallouslab.net/2017/06/12/batchography-embedding-python-scripts -在你的批处理文件脚本/
@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:])
这段代码的作用是将所有批处理代码放入一个多行字符串中,将自己作为一个 python 文件运行。 该字符串的开头在一个名为 rem 的变量中,以使批处理代码将其作为注释读取。 由于-x
参数,包含@echo off
的第一行在 python 代码中被忽略。
值得一提的是,如果您想在批处理代码中使用\\
,例如在文件路径中,则必须使用r"""..."""
将其包围以将其用作原始字符串没有转义序列。
@echo off
rem = r"""
...
"""
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_proyects\\example_folder\\ python example_file.py
使用任何文本编辑器并将以下代码另存为 runit.bat
@echo off
title Execute Python [NarendraDwivedi.Org]
:main
echo.
set/p filename=File Name :
echo.
%filename%
goto main
创建一个空文件并将其命名为“run.bat”
就我而言,我使用“py”因为它更方便,请尝试:
C:
cd C:\Users\user\Downloads\python_script_path
py your_script.py
@echo off
call C:\Users\[user]\Anaconda3\condabin\conda activate base
"C:\Users\[user]\Anaconda3\python.exe" "C:\folder\[script].py"
开始 xxx.py
您可以将其用于其他一些文件类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.