如何通过命令提示符调用bat运行Python文件及创建自定义传参命令
嘿,我来一步步帮你搞定这两个需求,刚接触批处理的话这些操作其实没那么复杂,跟着来就行~
问题1:通过命令提示符调用批处理文件运行Python脚本
首先你得先写好批处理文件,再通过CMD调用它,步骤如下:
编写批处理文件
新建一个文本文件,把后缀改成.bat(比如run_python.bat),然后写入以下内容:@echo off :: 替换成你的Python脚本的绝对路径 python "C:\Users\User\Documents\your_script.py" :: 可选:加上pause可以让运行窗口停留,方便查看输出 pause要是你的Python已经在系统PATH里,直接写
python就行;如果用的是虚拟环境,得写虚拟环境里python.exe的绝对路径,比如C:\Users\User\venv\Scripts\python.exe。在CMD里调用批处理文件
- 打开命令提示符,用
cd命令导航到bat文件所在的文件夹,比如:cd C:\Users\User\Desktop - 直接输入bat文件名回车:
run_python.bat - 或者直接用绝对路径调用,不用切换目录:
C:\Users\User\Desktop\run_python.bat
- 打开命令提示符,用
问题2:创建自定义命令(比如
create Helloworld)执行带参数的Python脚本 要实现这个,你需要让系统识别你的自定义命令,并且让批处理能传递参数给Python脚本,分三步来:
编写带参数的批处理文件
新建一个create.bat,写入以下内容:@echo off :: 检查用户有没有传入参数 if "%~1"=="" ( echo 请输入要传递的字符串参数哦!比如:create Helloworld pause exit /b 1 ) :: 调用Python脚本,把第一个命令行参数传过去 python "C:\Users\User\Documents\your_python_script.py" "%~1"这里的
%~1代表你输入的第一个参数(比如Helloworld),会原样传递给Python脚本。让系统能识别
create命令
这一步需要把create.bat所在的文件夹添加到系统环境变量PATH里:- 右键「此电脑」→ 「属性」→ 「高级系统设置」→ 「环境变量」
- 在「系统变量」里找到
PATH,点击「编辑」→ 「新建」,粘贴create.bat所在的文件夹路径(比如C:\Users\User\CustomCommands) - 点击所有弹窗的「确定」,然后重启命令提示符(环境变量修改后需要重启CMD才会生效)
Python脚本接收参数
你的Python脚本(比如your_python_script.py)要能读取批处理传过来的参数,用sys.argv就行:import sys if __name__ == "__main__": if len(sys.argv) > 1: received_str = sys.argv[1] print(f"收到的内容:{received_str}") # 这里写你的业务逻辑,比如创建名为Helloworld的文件 with open(f"{received_str}.txt", "w") as f: f.write(f"这是{received_str}的文件内容") print(f"已创建{received_str}.txt文件!") else: print("请传递一个字符串参数哦!")
现在你重启CMD后,在任意目录输入create Helloworld,就能自动运行批处理,把Helloworld传给Python脚本执行啦~
内容的提问来源于stack exchange,提问作者Rohit Manjunath




