You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过命令提示符调用bat运行Python文件及创建自定义传参命令

嘿,我来一步步帮你搞定这两个需求,刚接触批处理的话这些操作其实没那么复杂,跟着来就行~

问题1:通过命令提示符调用批处理文件运行Python脚本

首先你得先写好批处理文件,再通过CMD调用它,步骤如下:

  1. 编写批处理文件
    新建一个文本文件,把后缀改成.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

  2. 在CMD里调用批处理文件

    • 打开命令提示符,用cd命令导航到bat文件所在的文件夹,比如:cd C:\Users\User\Desktop
    • 直接输入bat文件名回车:run_python.bat
    • 或者直接用绝对路径调用,不用切换目录:C:\Users\User\Desktop\run_python.bat
问题2:创建自定义命令(比如create Helloworld)执行带参数的Python脚本

要实现这个,你需要让系统识别你的自定义命令,并且让批处理能传递参数给Python脚本,分三步来:

  1. 编写带参数的批处理文件
    新建一个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脚本。

  2. 让系统能识别create命令
    这一步需要把create.bat所在的文件夹添加到系统环境变量PATH里:

    • 右键「此电脑」→ 「属性」→ 「高级系统设置」→ 「环境变量」
    • 在「系统变量」里找到PATH,点击「编辑」→ 「新建」,粘贴create.bat所在的文件夹路径(比如C:\Users\User\CustomCommands
    • 点击所有弹窗的「确定」,然后重启命令提示符(环境变量修改后需要重启CMD才会生效)
  3. 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

火山引擎 最新活动