绿叶游花 发表于 2023-7-11 08:39:53

开机通过bat执行cmd命令

请教一个开机执行的bat脚本的编写方法:
1、编写一个bat文件,放进启动目录,开机自动执行,已实现
2、该bat共三个步骤,具体如下:
2.1 打开cmd窗口,已实现;
2.2 执行 D:\pyve\myve1\Scripts\activate.bat,已实现(激活一个Python的虚拟环境)
2.3 同一个cmd窗口,继续执行 streamlit run C:\Users\ZZC\Desktop\py脚本\streamlit\streamlit-visualization-23-st.bar_chart.py(通过streamlit run命令启动一个py文件)
注:该cmd窗口不关闭
找了好多网页,写了几版都没能执行2.3这个步骤。求助。

wp231957 发表于 2023-7-11 09:00:26

使用call 试一下

绿叶游花 发表于 2023-7-11 09:07:39

wp231957 发表于 2023-7-11 09:00
使用call 试一下

能否提供具体的写法?

陶远航 发表于 2023-7-11 09:09:07

您可以尝试以下方法来编写开机执行的批处理脚本:

打开一个文本编辑器(例如记事本)。
输入以下内容并保存为startup.bat或其他您喜欢的文件名:
@echo off
start cmd /k "call D:\pyve\myve1\Scripts\activate.bat & streamlit run C:\Users\ZZC\Desktop\py脚本\streamlit\streamlit-visualization-23-st.bar_chart.py"
将该批处理文件移动到启动目录中。通常,启动目录位于 C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup。您可以在资源管理器中输入该路径来快速访问该目录。
现在,当您的计算机启动时,会自动打开一个命令提示符窗口,并依次执行以下操作:

打开cmd窗口。
执行 D:\pyve\myve1\Scripts\activate.bat,激活Python虚拟环境。
在同一个cmd窗口中继续执行 streamlit run C:\Users\ZZC\Desktop\py脚本\streamlit\streamlit-visualization-23-st.bar_chart.py,通过Streamlit运行Python脚本。
请确保脚本文件路径是正确的,并根据您的实际情况进行调整。

wp231957 发表于 2023-7-11 09:16:32

绿叶游花 发表于 2023-7-11 09:07
能否提供具体的写法?

你确认是windows吗
我的需要py -m streamlit run file1.py    这样才能运行把这个放在bat里然后再另一个bat里call 它

绿叶游花 发表于 2023-7-11 09:19:52

陶远航 发表于 2023-7-11 09:09
您可以尝试以下方法来编写开机执行的批处理脚本:

打开一个文本编辑器(例如记事本)。


感谢你的耐心帮助。
另,上面提供的文件路径有中文,我执行失败。把第二步的文件路径修改为英文的,就执行成功。
再次感谢。

陶远航 发表于 2023-7-11 09:46:14

本帖最后由 陶远航 于 2023-7-11 09:47 编辑

绿叶游花 发表于 2023-7-11 09:19
感谢你的耐心帮助。
另,上面提供的文件路径有中文,我执行失败。把第二步的文件路径修改为英文的,就执 ...

非常抱歉给您带来了困扰,确实在批处理脚本中使用中文路径可能会导致执行失败。这是由于命令提示符窗口在处理中文路径时可能会出现问题。

如果您需要在批处理脚本中使用中文路径,可以尝试使用短路径(即使用类似PROGRA~1的短文件名)来代替完整的中文路径。您可以通过以下步骤获取文件的短路径名:

打开命令提示符窗口。
切换到文件所在目录。例如,输入 cd C:\Users\ZZC\Desktop\py脚本\streamlit 并按 Enter 键。
输入 dir /x 并按 Enter 键。将显示目录中的文件列表,每个文件后面都有一个短文件名。
在显示的文件列表中找到您想要使用的文件,并注意其对应的短文件名。然后将批处理脚本中的路径修改为短文件名的形式。

例如,如果 C:\Users\ZZC\Desktop\py脚本\streamlit\streamlit-visualization-23-st.bar_chart.py 的短文件名为 STREAM~1.PY,则将批处理脚本的第二步修改为:

start cmd /k "call D:\pyve\myve1\Scripts\activate.bat & streamlit run C:\Users\ZZC\Desktop\py脚本\streamlit\STREAM~1.PY"
这样应该可以解决中文路径导致的执行问题。如果还有其他问题,请随时向我提问。再次感谢您的理解和耐心!

Threebody1 发表于 2023-7-11 11:31:30

改成ansi编码
页: [1]
查看完整版本: 开机通过bat执行cmd命令