Как выполнить bat из ma c? Можно ли его переписать в скрипт python или bash? - PullRequest
1 голос
/ 29 мая 2020

У меня проблема с файлом .bat. Есть файл .bat, который запускает сервер. Но в системе Ma c 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

Спасибо за помощь !

Ответы [ 2 ]

3 голосов
/ 29 мая 2020

Вот пример Python, который является кроссплатформенным (если у вас нет node в PATH) и использует только стандартную библиотеку:

# 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 env var). Пример:

# 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()
2 голосов
/ 29 мая 2020

Хорошо, поэтому лучше использовать bash скриптов. Они намного мощнее bat и работают на всех Unix подобных ОС (Linux, Ma c ..) и могут работать на windows с некоторыми изменениями. Это покажет вам, как запустить узел:

Запуск узла из bash скрипта

Это покажет вам, как запустить приложение:

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 вы можете увидеть, как запустить его на ma c, но, как они там указали, он не работает на 100%.

Edit1: Это код:

#!/bin/bash

echo "Star server .."
node webServer.js
echo "Open chrome"
open http://localhost:8080

Для узла просто добавьте путь к файлу, как вы обычно его запускаете. В последней строке открывается браузер по умолчанию со ссылкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...