![](/img/trans.png)
[英]Failed to execute script file (.bat) when running from a python script
[英]How execute bat from mac? Is it possible to rewrite it to python or bash script?
我對 .bat 文件有疑問。 有一個啟動服務器的.bat 文件。 但在 Mac OS 系統上,這是不可能的。 是否有任何選項可以將其重寫為 python 或 bash 以便可以從 MacBook 開始?
這是.bat 文件:
echo start web server..
start cmd /k node webServer.js
echo start chrome..
start chrome.exe /k http://localhost:8080
感謝您的幫助!
好的,所以最好使用 bash 腳本。 它們比 bat 功能強大得多,它們可以在所有 Unix 上工作,如 OS-s(Linux、Mac..),並且可以在 windows 上進行一些修改。 這將向您展示如何運行節點:
這將向您展示如何運行該應用程序:
https://askubuntu.com/questions/682913/how-to-write-shell-script-to-start-some-programs
另外,看看這個鏈接對bash的介紹,知道它是件好事:
https://linuxconfig.org/bash-scripting-tutorial-for-beginners
同樣在https://www.mac-forums.com/forums/switcher-hangout/302162-execute-bat-file-mac.html上,您可以看到如何在 mac 上運行它,但正如他們指出的那樣,它沒有不能 100% 工作。
編輯1:這是代碼:
#!/bin/bash
echo "Star server .."
node webServer.js
echo "Open chrome"
open http://localhost:8080
對於節點,只需添加文件路徑,就像您通常運行它一樣。 對於最后一行,它會打開帶有鏈接的默認瀏覽器。
這是一個跨平台的 Python 示例(除非您在PATH
中沒有node
)並且僅使用標准庫:
# client.py
import subprocess
import webbrowser
if __name__ == '__main__':
try:
server_proc = subprocess.Popen(['node', 'webServer.js'])
webbrowser.open('http://localhost:8080')
server_proc.communicate()
except KeyboardInterrupt:
server_proc.terminate()
但是請注意, webbrowser.open
將打開設置為默認瀏覽器的瀏覽器,因此它可能是 Safari 或其他。 如果要專門打開 Chrome,則必須將完整路徑傳遞給可執行文件(或修改PATH
環境變量)。 例子:
# client.py
import os
import subprocess
if __name__ == '__main__':
try:
server_proc = subprocess.Popen(['node', 'webServer.js'])
chrome_exe = os.path.join('/', 'Applications', 'Google Chrome.app', 'Contents', 'MacOS', 'Google Chrome')
subprocess.Popen([chrome_exe, 'http://localhost:8080'])
server_proc.communicate()
except KeyboardInterrupt:
server_proc.terminate()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.