Как запустить .bat

573
Greg

Я использую Mac OS X El Capitan, и я не совсем уверен, как запустить расширение .bat. Раньше я мог просто сделать это прямо сейчас, но теперь он просит меня выбрать приложение, чтобы использовать его, чтобы открыть его. Я не знаю, что использовать. Пожалуйста помоги.

редактировать: раньше он работал нормально и открывался в командном центре, даже если он имеет расширение .bat. Это изменилось, когда я переключился на Эль-Капитан

редактировать 2:

java -Xmx3G -Xms2G -jar Tekkit.jar noggin pause 
0
возможно, есть какой-то конвертер, но вы должны добавить немного о том, где вы получили этот .bat файл и что в нем есть barlop 7 лет назад 0
Это просто пусковая установка для сервера Minecraft Tekkit, на котором я играл все время. Я создал его с помощью textedit, и он работал Greg 7 лет назад 0
я не знаком с mindcraft ... Но знаете ли вы, что Mac, так как они работают под управлением OSX, не будут выполнять пакетные файлы Windows, у них есть собственная оболочка на основе BSD, в которой есть языки вроде bash или ksh, а не пакетные. И кроме пакетного файла, исполняемый файл сервера Minecraft, который работает на Windows, не будет работать на Mac, вам понадобится исполняемый файл сервера Minecraft, который был скомпилирован для Mac (или что-то на Mac, которое может имитировать машину Windows, и запустить сервер майнкрафт) barlop 7 лет назад 0
В этом-то и дело: раньше он прекрасно работал и открывался в командном центре, хотя и имел расширение .bat. Это изменилось, когда я переключился на Эль-Капитан Greg 7 лет назад 0
Вы должны добавить тот момент, который вы только что внесли в свой вопрос barlop 7 лет назад 0
И что же мне делать? Greg 7 лет назад 0
Фантастически, что вы включили содержимое. Linux не смотрит на расширения. и с точки зрения типа файла, это также может работать как сценарий оболочки * nix. Вы должны включить сообщение об ошибке при попытке запустить это. (а затем Google сообщение об ошибке, и посмотрите, что Google говорит об этом сообщении об ошибке). например, это может быть проблема с разрешениями (требуется chmod), или это может быть необходимость установки Java. Или это может быть ваш файл JAR не существует в этом месте barlop 7 лет назад 0
Я думаю, вполне возможно, что ваш файл `.bat` не был запущен как bat-файл, но его содержимое работало бы как командный файл или сценарий оболочки * nix. что произойдет, если вы выполните `chmod 777 blah.bat` и затем выполните команду? (при условии, что у вас установлена ​​java и есть файл jar) .. это может работать barlop 7 лет назад 0
Спасибо @barlop за указание на то, что мне не хватает опции -jar (ответ отредактирован). OP, попробуйте запустить первую строку «java -Xmx3G -Xms2G -jar Tekkit.jar noggin» без паузы и замените Tekkit.jar на полный путь, например: ~ / my-java-stuff / Tekkit.jar, или попробуйте запустить путь к файлу майнкрафт (по-видимому, по данным веб-сайта, это так): "~ / Library / Application Support / minecraft / bin / minecraft.jar" nonzyro 7 лет назад 0
Сайты @nonzyro superuser / stackoverflow / stackexchange могут быть очень глупы с форматированием ... он поставил паузу в новой строке. Тем не менее, действительно, пауза не должна быть там. поскольку запуск его как bash-скрипта - это то, что он, вероятно, делал в любом случае. Стоит отметить, что пауза не будет ошибкой, которую он описывает. Хотя он не очень много описывает ошибку. Он действительно должен дать сообщение об ошибке. barlop 7 лет назад 0
-1 Дайте сообщение об ошибке при попытке запустить ваш «скрипт». (И при попытке запустить однострочную команду из терминала). Вы даже не заявили об ошибке. Заявить, что что-то не работает, совершенно недостаточно. barlop 7 лет назад 0

3 ответа на вопрос

1
nonzyro

[обновлено: 2016-05-18] Отсутствует параметр -jar. Ткс за указание на это @barlop.

[обновлено: 2016-05-17] Устранение / устранение неоднозначности.

Обратите внимание: вам не нужно скачивать WINE [edit], просто [/ edit], чтобы запустить пакетный скрипт. Фактически, не пытайтесь запустить [edit] пакетно, вместо этого конвертируйте его в эквивалентный сценарий оболочки для вашей системы [/ edit].

Как уже указывалось, .bat - это скрипт, запускаемый CLI Microsoft. Что касается Mac, я полагаю, вам нужно что-то в этом духе ([править] Я копался и обнаружил, что Minecraft - это Java и так [/ edit]):

! # / bin / sh java -jar ~ / Библиотека / Поддержка приложений / minecraft / bin / minecraft.jar  # Обратите внимание, что приведенный выше путь основан на интернет-источниках. Кроме того, я # не очень хорошо знаю Java, но, возможно, кто-то может добавлять / редактировать, где это необходимо. 

Сохраните его как файл .sh (и, если необходимо, выполните chmod для ug + x). Затем поместите его туда, куда вы хотели бы добавить ярлык (или что-то похожее на / usr / bin /, если вы хотите, чтобы он был доступен для всей системы).

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

-1 Ваше первое предложение очень очень вводит в заблуждение. Это почти говорит о том, что есть другой способ, которым он может запустить пакетный скрипт, кроме WINE (может быть, есть, может и нет). Это исключительно вводит в заблуждение, также учитывая, что он утверждал, что он смог запустить его в своей предыдущей версии. Вы хотите сказать ему, что он не должен пытаться запустить пакетный скрипт. Вы должны сказать ему, что думаете, что он не должен пытаться запустить пакетный скрипт. И вы совсем не говорите ему, вы просто говорите ему, как запустить программу в ОС * nix. barlop 7 лет назад 0
Вы также не добавляете ничего, что не было упомянуто в комментарии. barlop 7 лет назад 0
@ barlop: Да, я сформулировал это немного несовершенно, и теперь я отредактировал это, чтобы отразить столько же. Тем не менее, в отношении плохой формулировки и, чтобы не быть грубым, вы просто вопиюще противоречили себе в своем первом комментарии, называя _your интерпретацию_ моего ответа "вводящей в заблуждение". Вы говорите: «Это почти говорит о том, что есть и другой способ, которым он может запустить пакетный скрипт, кроме WINE, (может, есть, может и нет)» - противоречие. Несмотря на тот факт, что ОП утверждал, что он ** мог ** ранее запустить его настолько ясно, что на его старой установке присутствовал переводчик. nonzyro 7 лет назад 0
Что касается вашего комментария о том, что я не добавил ничего, что не было упомянуто ранее, я бы сказал, что добавил шаблон сценария оболочки, который на момент написания этого документа был больше, чем кто-либо еще дал. Мой ответ, IMVHO был ** намного лучшим предложением, чем загрузка WINE **, nonzyro 7 лет назад 0
Вы добавили то, что вы называете «шаблоном сценария оболочки», то есть просто как запустить программу * nix в * nix ',, A), это действительно отдельный вопрос о том, как запустить bat в * nix, и B) как запускать * nix программу в * nix настолько просто и легко гуглить, что я бы даже не посчитал это дополнением. И вообще, не делайте так, чтобы ответить на этот вопрос, на самом деле не является правильным ответом, это скорее комментарий, а когда контент является чем-то настолько простым и легко поддающимся поиску, это очень низкая ценность. По крайней мере, скачать WINE прямо отвечает на вопрос. barlop 7 лет назад 0
Если у него был пакетный файл (что было разумным допущением, сделанным ответчиками), то можно отметить это (загрузив WINE), в качестве небольшого дополнительного примечания, что вместо этого рекомендуется просто написать однострочный сценарий оболочки. тогда это будет ответ на вопрос barlop 7 лет назад 0
Вы пишете «называя вашу интерпретацию моего ответа« вводящей в заблуждение »« <- я этого не говорил. А) Я говорил, что первое предложение вводит в заблуждение - будьте конкретны Б) Я не говорил, что моя интерпретация вводит в заблуждение, я Первое предложение вводило в заблуждение - я мог видеть, что в нем было 2 толкования, одно было тем, что вы имели в виду, а другое очень не то, что вы имели в виду. Вы не предлагаете решения, альтернативного WINE, для запуска командного файла. Так что не утверждайте, что ему не нужно запускать WINE для запуска пакетного файла. После того, как тот, кто хочет запустить пакетный файл, читает ваш ответ, ему все равно нужно запустить WINE, если он хочет запустить пакетный файл. barlop 7 лет назад 0
И я не противоречил сам себе, я все еще открыт для вашего утверждения о том, что ему не нужно WINE для запуска пакетного файла, хотя я жду и сомневаюсь, что вы опубликуете какую-либо альтернативу для запуска файла пакета ». потому что я сомневаюсь, что вы знаете что-либо, (хотя может быть), и я думаю, что вы не хотели писать это. Хотя вы все еще не исправили / не выполнили свою заявку. Насколько вам известно, он МОЖЕТ БЫТЬ НУЖЕН запустить WINE для запуска командного файла, вы просто думаете, что он не должен запускать bat-файл. Похоже, вы сказали противоположное тому, что имели в виду даже в первом предложении. barlop 7 лет назад 0
Я собираюсь предположить, что английский не является вашим родным языком, поэтому моя позиция в отношении вашего противоречия стоит так: вы сказали, что мое предложение вводит в заблуждение, так как предполагает, что одно не требует WINE, но на одном дыхании вы сказали, что, возможно, это не так (и OP сказал, что ранее он мог запустить партию без упоминания вина). Я также поддерживаю свое решение, являющееся лучшей альтернативой WINE. Что касается вашего заявления о том, что я не отвечаю на настоящий вопрос, я полностью признаю, что я не ответил на него, а вместо этого предоставил прагматичный обходной путь. На этой ноте, не могли бы мы просто позвонить ей даже сейчас и уйти достойно. nonzyro 7 лет назад 0
Давайте [продолжим это обсуждение в чате] (http://chat.stackexchange.com/rooms/39928/discussion-between-barlop-and-nonzyro). barlop 7 лет назад 0
0
LPChip

Файлы .bat являются родными для Windows, а не для Mac OS.

Чтобы запустить файл .bat, вам нужно будет использовать что-то на Mac, которое запускает исполняемые файлы Windows, такие как wine и т. Д.

Кроме того, найдите Mac-версию программы, которую вы запускаете. Скорее всего, у него есть свой вид сценариев в виде файлов bash или ksh. Пакетные (.bat, .cmd) файлы тоже являются скриптами, но написаны для windows.)

и я хотел бы добавить к последнему предложению, что обычным делом будет использовать скрипт для ОС * nix, например, bash / ksh, barlop 7 лет назад 0
Так какое расширение я должен использовать? Greg 7 лет назад 0
@ Грег, вы можете добавить больше информации к вашему вопросу, например, показать содержимое файла bat, который, как вы говорите, работал, а также откуда вы его взяли. barlop 7 лет назад 0
@ barlop добавлен. Тпй. LPChip 7 лет назад 0
0
TOOGAM

Вот некоторая базовая информация о Unix. Предоставляется не так много деталей, относящихся к «Эль-Капитану», но они не нужны для того, чтобы все заработало. (Я понимаю, что обновление до "El Capitan" сломало вещи. Возможно, это изменило то, что находится на вашем пути, или изменило некоторые разрешения. Ниже приведены подробные сведения о том, как заставить вещи работать.

В DOS командный файл - это текстовый файл, который заканчивается на «.BAT» (без учета регистра, поэтому «.bat» также будет работать). Microsoft Windows следует традиции DOS. Каждая строка в командном файле - это команда, запускаемая из интерпретатора команд.

В Unix, включая Mac OS X, надлежащий файл «сценария оболочки» должен иметь надлежащий заголовок и соответствующие разрешения. Затем после заголовка каждая строка в пакетном файле представляет собой команду, запускаемую из интерпретатора команд.

Обратите внимание, что эти описания в основном одинаковы. В основном, большая часть файла сценария представляет собой просто список команд для запуска. Команды, которые одинаковы между DOS и Unix, такие как «cd ..», или имена исполняемых файлов в пределах PATH, могут одинаково хорошо работать с обоими типами файлов.

Если у вас был файл сценария Unix, который сказал:
#!/bin/sh @Echo Off echo hello cd . more < readme.txt

Тогда первая строка файла вызовет безвредную ошибку в DOS / Windows, вторая строка файла вызовет сообщение об ошибке harmelss в Unix, а остальная часть файла может работать одинаково в обеих средах.

Будет ли это на самом деле хорошо работать для вас или нет, во многом зависит от того, какие команды вы используете. Например, " cd bin" может хорошо работать в обеих средах, но DOS / Windows использует обратную косую черту в качестве разделителя каталогов, а Unix использует прямую косую черту. Поэтому некоторые команды могут не работать хорошо.

Лучший способ предсказать, насколько хорошо будет работать ваш конкретный пакетный файл, - это если мы знали содержимое пакетного файла. Вот почему комментарий Барлопа спросил о содержимом командного файла.

Относительно вашего вопроса (из одного из ваших комментариев), какое расширение использовать: В DOS / Windows ответом является «.BAT» (любое количество строчных букв в порядке, поэтому «.bat» тоже подойдет.) В Unix Наиболее распространенными стандартами являются «нет» (без расширения) или « .sh». Однако в Unix расширение действительно не имеет большого значения. Важно то, имеет ли файл необходимые разрешения и, возможно, начинается ли он с соответствующего заголовка. Поэтому убедитесь, что все правильно. (Заголовок - первая строка, показанная в моем предыдущем примере. Разрешения могут быть установлены с помощью "chmod a+x filename.bat"но, конечно, укажите фактическое местоположение имени файла.) Когда вы запускаете файл в Unix, обязательно укажите полное имя файла сценария, включая расширение" .bat ". (Если вам не нравится для этого просто создайте символьную ссылку, указав символическую ссылку с именем «gonow», указывающую на «gonow.bat» (или что-то другое).

Другой способ сделать это в Unix - запустить файл .BAT из другого программного обеспечения, похожего на DOS. например, COMMAND.COM в Wine, или, возможно, CMD.EXE в WINE, или другие варианты Wine, такие как Crossover, или другое программное обеспечение, такое как DOSBox или DOSemu. Если вы используете это программное обеспечение, предназначенное для работы, аналогично DOS, то оно может запускать файл, не требуя указания расширения «.bat».

Другой альтернативой может быть простое использование файла сценария оболочки, который запускает Java (поскольку содержимое пакетного файла, упомянутое в другом месте, показывает, что Java запускается), и игнорирование попытки использовать файл, который заканчивается расширением «.bat». (Таким образом, это не файл .bat, а сценарий оболочки или символическая ссылка.)