So starten Sie eine .bat

642
Greg

Ich verwende Mac OS X El Capitan und bin nicht mehr ganz sicher, wie ich eine .bat-Erweiterung starten soll. Früher war ich in der Lage, es einfach sofort zu tun, aber jetzt werde ich aufgefordert, eine Anwendung auszuwählen, mit der sie geöffnet werden kann. Ich weiß nicht, was ich verwenden soll. Bitte helfen

Bearbeiten: Früher funktionierte es einwandfrei und wurde in der Befehlszentrale geöffnet, obwohl es die Erweiterung .bat hat. Als ich zu El Capitan wechselte, änderte sich dies

edit 2:

java -Xmx3G -Xms2G -jar Tekkit.jar noggin pause 
0
Vielleicht gibt es einen Konverter, aber Sie sollten ein wenig hinzufügen, wo Sie diese .bat-Datei erhalten haben und was darin enthalten ist barlop vor 7 Jahren 0
Es ist nur ein Launcher für einen Minecraft-Tekkit-Server, den ich immer gespielt habe. Ich habe es mit textedit erstellt und es hat funktioniert Greg vor 7 Jahren 0
Ich bin nicht mit Mindcraft vertraut. Aber wissen Sie, dass Macs, da sie OSX ausführen, keine Windows-Batch-Dateien ausführen. Sie verfügen über eine eigene BSD-basierte Shell, die Sprachen wie Bash oder Ksh und nicht Batch enthält. Abgesehen von der Batch-Datei kann die ausführbare Minecraft-Server-Datei, die unter Windows ausgeführt wird, nicht auf Mac ausgeführt werden. Sie benötigen eine Minecraft-Server-Programmdatei, die für Mac kompiliert wurde (oder etwas auf dem Mac, das eine Windows-Maschine simulieren kann, und die Minecraft Server) barlop vor 7 Jahren 0
Das war jedoch das Ding, es funktionierte in der Kommandozentrale gut und war offen, obwohl es die Erweiterung .bat hat. Als ich zu El Capitan wechselte, änderte sich dies Greg vor 7 Jahren 0
Sie sollten den Punkt, den Sie gerade gemacht haben, zu Ihrer Frage hinzufügen barlop vor 7 Jahren 0
Also was soll ich tun? Greg vor 7 Jahren 0
Fantastisch, dass Sie den Inhalt beigelegt haben. Linux betrachtet Erweiterungen nicht. und was den Dateityp angeht, könnte dies auch als * nix-Shell-Skript funktionieren. Sie sollten die Fehlermeldung angeben, wenn Sie versucht haben, das auszuführen. (und dann google die Fehlermeldung und sehen Sie, was Google über diese Fehlermeldung sagt). Es könnte sich beispielsweise um ein Berechtigungsproblem handeln (chmod erforderlich) oder es muss Java installiert sein. Oder es könnte sein, dass Ihre JAR-Datei an diesem Ort nicht vorhanden ist barlop vor 7 Jahren 0
Ich denke, dass Ihre `.bat`-Datei möglicherweise nicht als bat-Datei ausgeführt wurde, aber der Inhalt würde entweder als Batch-Datei oder als * nix-Shell-Skript funktionieren. Was passiert, wenn Sie `chmod 777 blah.bat` ausführen und dann den Befehl ausführen? (vorausgesetzt, Sie haben Java installiert und die JAR-Datei dort) .. es könnte funktionieren barlop vor 7 Jahren 0
Danke @barlop für den Hinweis, dass mir die Option -jar fehlt (Antwort bearbeitet). OP, versuchen Sie, die erste Zeile "java -Xmx3G -Xms2G -jar Tekkit.jar noggin" ohne Pause auszuführen, und ändern Sie Tekkit.jar in den vollständigen Pfad, zB: ~ / my-java-stuff / Tekkit.jar, oder führen Sie das aus Pfad zur Minecraft-Datei (anscheinend laut Web:): "~ / Library / Application Support / minecraft / bin / minecraft.jar" nonzyro vor 7 Jahren 0
@nonzyro Superuser- / stackoverflow- / stackexchange-Sites können mit der Formatierung wirklich blöd sein. Er hatte eine neue Zeile unterbrechen lassen. Trotzdem sollte die Pausenlinie nicht vorhanden sein. da es als bash-Skript ausgeführt wird, hat er wahrscheinlich sowieso gearbeitet. Erwähnenswert, dass die Pause nicht der von ihm beschriebene Fehler wäre. Obwohl er den Fehler nicht viel beschreibt. Er muss die Fehlermeldung wirklich geben. barlop vor 7 Jahren 0
-1 Geben Sie die Fehlermeldung an, wenn Sie versuchen, Ihr 'Skript' auszuführen. (Und wenn Sie versuchen, den einzeiligen Befehl von einem Terminal aus auszuführen). Sie haben nicht einmal den Fehler angegeben. Zu sagen, dass etwas nicht funktioniert, ist völlig unzureichend. barlop vor 7 Jahren 0

3 Antworten auf die Frage

1
nonzyro

[aktualisiert: 2016-05-18] Fehlender Parameter -jar. Tks für das Aufzeigen von @barlop.

[aktualisiert: 2016-05-17] Änderungen / Verbesserungen der Begriffsbestimmung.

Bitte beachten Sie: Sie müssen WINE [edit] nicht herunterladen, sondern nur [/ edit], um ein Batch-Skript auszuführen. Versuchen Sie nicht, "batch" auszuführen, sondern konvertieren Sie ihn in das entsprechende Shell-Skript für Ihr System [/ edit].

Wie bereits erwähnt, ist .bat ein Skript, das von der CLI von Microsoft ausgeführt wird. Für Mac glaube ich, dass Sie etwas in dieser Richtung brauchen ([edit] Ich habe herumgegraben und festgestellt, dass Minecraft Java ist und so [/ edit]):

! # / bin / sh java -jar ~ / Library / Anwendungssupport / minecraft / bin / minecraft.jar  # Bitte beachten Sie, dass der obige Pfad auf Internetquellen basiert. Ich bin auch # Nicht sehr Java-kenntnisreich, aber vielleicht kann jemand hinzufügen / bearbeiten, wo er benötigt wird. 

Speichern Sie es als .sh-Datei (und wenn nötig chmod in ug + x). Platzieren Sie es dann an einer beliebigen Stelle, an der die Verknüpfung erstellt werden soll (oder in einem ähnlichen Verzeichnis wie / usr / bin /, falls Sie es systemweit verfügbar machen möchten).

Offensichtlich kann, wie andere gesagt haben, niemand, ohne den Inhalt der Batch-Datei zu sehen, Ihnen eine genaue Übersetzung geben.

-1 Ihr erster Satz ist sehr irreführend. Es deutet fast an, dass es noch eine andere Möglichkeit gibt, ein Batch-Skript als WINE auszuführen (vielleicht gibt es das, vielleicht gibt es das nicht). Das ist außergewöhnlich irreführend, auch wenn man bedenkt, dass er es in seiner vorherigen Version ausführen konnte. Was Sie ihm sagen wollen, ist, dass er nicht versuchen sollte, das Batch-Skript auszuführen. Sie sollten ihm sagen, dass Sie denken, dass er nicht versuchen sollte, das Batch-Skript auszuführen. Und Sie sagen ihm nicht viel, Sie sagen ihm nur, wie man ein Programm in einem * nix-basierten Betriebssystem startet. barlop vor 7 Jahren 0
Du fügst auch nicht wirklich etwas hinzu, was nicht in Kommentaren erwähnt wurde. barlop vor 7 Jahren 0
@ barlop: Ja, ich habe es etwas unvollkommen formuliert und jetzt habe ich es so bearbeitet, dass es so viel reflektiert. In Bezug auf schlechte Formulierungen, und um nicht unhöflich zu sein, widersprachen Sie sich offenbar in Ihrem ersten Kommentar, indem Sie Ihre Interpretation meiner Antwort als "irreführend" bezeichnen. Sie sagen "Es scheint fast, dass es eine andere Möglichkeit gibt, ein Batch-Skript außer WINE auszuführen (vielleicht gibt es, vielleicht gibt es keinen)" - ein Widerspruch. Trotz der Tatsache, dass OP behauptete, er könne es vorher so eindeutig ausführen, dass in seinem alten Setup ein Dolmetscher anwesend war. nonzyro vor 7 Jahren 0
Zu Ihrem Kommentar, dass ich nichts hinzugefügt habe, was zuvor nicht erwähnt wurde, würde ich behaupten, dass ich eine Shell-Skriptvorlage hinzugefügt habe, die zum Zeitpunkt des Schreibens mehr war als alle anderen bisher. Meine Antwort, IMVHO war ein viel besserer Vorschlag als das Herunterladen von WINE **. nonzyro vor 7 Jahren 0
Sie haben das hinzugefügt, was Sie als "Shell-Skriptvorlage" bezeichnen. Dies ist nur die Ausführung eines * nix-Programms in * nix ', A). Dies ist wirklich eine separate Frage zum Starten eines Bat in * nix und B) wie ein * nix-Programm in * nix auszuführen ist so einfach und so einfach, dass ich es nicht einmal als Zusatz betrachten würde. Im Allgemeinen ist eine Antwort, die diese Antwort nicht tut, nicht wirklich eine richtige Antwort, sondern eher ein Kommentar, und wenn der Inhalt etwas so grundlegend und leicht zu finden ist, ist er von sehr geringem Wert. Zumindest beantwortet WINE direkt die Frage. barlop vor 7 Jahren 0
Wenn er eine Batch-Datei hatte (was die vernünftige Annahme war, die die Antwortenden annahmen), kann man dies (Herunterladen von WINE) als eine kleine Randbemerkung vermerken, dass man stattdessen nur das einzeilige Shell-Skript schreibt. dann würde es die Frage beantworten barlop vor 7 Jahren 0
Schreiben Sie "Ihre Interpretation meiner Antwort als" irreführend "" <- Ich habe das nicht gesagt. A) Ich habe den ersten Satz als irreführend bezeichnet - seien Sie konkret. B) Ich habe nicht gesagt, meine Interpretation sei irreführend, sagte ich Der erste Satz war irreführend - ich konnte sehen, dass er zwei Interpretationen hatte, eine war, was Sie meinten, und eine war sehr, nicht was Sie meinten. Sie bieten keine Alternative zu WINE an, um eine Batchdatei auszuführen. Also behaupten Sie nicht, dass er WINE nicht ausführen muss, um eine Stapeldatei auszuführen. Nachdem er die Antwort einer Batchdatei ausgeführt haben möchte, muss er noch immer WINE ausführen, wenn er eine Batchdatei ausführen möchte barlop vor 7 Jahren 0
Und ich widersprach mir nicht. Ich bin immer noch offen für Ihre Behauptung, er brauche WINE nicht, um eine Batch-Datei auszuführen. Ich warte jedoch und ich bezweifle, dass Sie eine Alternative posten, um eine Stapel-Datei zu erstellen. ' Ich bezweifle, dass Sie etwas wissen (obwohl es eines gibt), und ich glaube, Sie wollten das nicht schreiben. Obwohl Sie Ihren Anspruch noch nicht korrigiert / erfüllt haben. Was Sie anbelangt, KANN er vielleicht WINE ausführen, um eine Batch-Datei auszuführen. Sie denken nur, er sollte keine Bat-Datei ausführen. Es sieht also so aus, als hätten Sie schon im ersten Satz das Gegenteil von dem gesagt, was Sie meinten. barlop vor 7 Jahren 0
Ich gehe davon aus, dass Englisch nicht Ihre Muttersprache ist, also steht meine Position zu Ihrem Widerspruch: Sie sagten, mein Satz sei irreführend, da es darauf hindeutete, dass man keinen Wein brauchte, aber im selben Atemzug sagten Sie vielleicht nicht (und OP) sagte, er könne zuvor ohne Angabe von WINE im Batch laufen). Ich stehe auch zu meiner Lösung, die eine bessere Alternative zu WINE ist. Zu Ihrem Anspruch, die eigentliche Frage nicht zu beantworten, habe ich völlig eingeräumt, dass ich sie nicht beantwortet habe, sondern einen pragmatischen Workaround gegeben habe. Könnten wir das bitte auch gleich anrufen und würdig weggehen? nonzyro vor 7 Jahren 0
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/39928/discussion-between-barlop-and-nonzyro). barlop vor 7 Jahren 0
0
LPChip

.bat-Dateien sind native für Windows und nicht für Mac OS.

Um eine .bat-Datei zu starten, müssen Sie etwas auf dem Mac verwenden, das ausführbare Dateien von Windows startet, z. B. Wine usw.

Alternativ können Sie eine Mac-Version des Programms suchen, das Sie starten. Es gibt wahrscheinlich eine eigene Art von Scripting in Form einer Bash- oder Ksh-Datei. Batch-Dateien (.bat, .cmd) sind ebenfalls Skripts, die jedoch für Windows geschrieben werden.)

und ich füge dem letzten Satz hinzu, dass es normal wäre, ein Skript für ein * nix-basiertes Betriebssystem zu verwenden, z. B. bash / ksh. barlop vor 7 Jahren 0
Welche Erweiterung soll ich verwenden? Greg vor 7 Jahren 0
@Greg Sie könnten Ihrer Frage mehr Informationen hinzufügen, z. B. den Inhalt der Bat-Datei anzeigen, von der Sie behaupteten, dass sie funktioniert hat, und woher Sie sie erhalten haben. barlop vor 7 Jahren 0
@barlop hinzugefügt. tnx. LPChip vor 7 Jahren 0
0
TOOGAM

Hier sind einige grundlegende Unix-Informationen. Es werden nicht viele "El Capitan" -spezifische Details zur Verfügung gestellt, sie sollten jedoch nicht erforderlich sein, damit die Dinge funktionieren. (Ich verstehe, dass ein Upgrade auf "El Capitan" die Dinge kaputt gemacht hat. Vielleicht hat sich das geändert, was sich in Ihrem Weg befindet, oder einige Berechtigungen geändert. Im Folgenden werden Details beschrieben, wie die Dinge funktionieren.

In DOS ist eine Batchdatei eine Textdatei, die mit ".BAT" endet (Groß- und Kleinschreibung wird nicht berücksichtigt, daher funktioniert ".bat" auch). Microsoft Windows folgt der DOS-Tradition. Jede Zeile in der Batchdatei ist ein Befehl, der vom Befehlsinterpreter aus ausgeführt wird.

In Unix, einschließlich Mac OS X, sollte eine richtige "Shell-Skript" -Datei einen richtigen Header und die richtigen Berechtigungen haben. Nach dem Header ist jede Zeile in der Batchdatei ein Befehl, der vom Befehlsinterpreter aus ausgeführt werden soll.

Beachten Sie, dass diese Beschreibungen meist gleich sind. Die Skriptdatei besteht hauptsächlich aus einer Liste von Befehlen, die ausgeführt werden sollen. Befehle, die zwischen DOS und Unix gleich sind, wie "cd .." oder die Namen der ausführbaren Dateien im PATH, funktionieren möglicherweise mit beiden Dateitypen gleich gut.

Wenn Sie eine Unix-Skriptdatei hatten, die besagte:
#!/bin/sh @Echo Off echo hello cd . more < readme.txt

Dann würde die erste Zeile der Datei einen harmlosen Fehler in DOS / Windows verursachen, die zweite Zeile der Datei würde zu einer harmelss-Fehlermeldung in Unix führen und der Rest der Datei könnte in beiden Umgebungen identisch funktionieren.

Ob dies für Sie tatsächlich gut ist oder nicht, hängt in hohem Maße davon ab, welche Befehle Sie verwenden. Zum Beispiel kann " cd bin" in beiden Umgebungen gut funktionieren, aber DOS / Windows verwenden einen Backslash als Verzeichnisseparator, während Unix einen Schrägstrich verwendet. Daher funktionieren einige Befehle möglicherweise nicht gut.

Der beste Weg, um vorhersagen zu können, wie gut eine bestimmte Batchdatei funktionieren würde oder nicht, ist, wenn wir den Inhalt der Batchdatei kennen. Deshalb fragte der Kommentar von Barlop nach dem Inhalt der Batchdatei.

Zu Ihrer Frage (aus einem Ihrer Kommentare), welche Erweiterung verwendet werden soll: In DOS / Windows lautet die Antwort ".BAT" (jede Menge an Kleinbuchstaben ist in Ordnung, daher ist ".bat" auch in Ordnung.) In Unix ist das Die gebräuchlichsten Standards sind "keine" (keine Erweiterung) oder " .sh". In Unix spielt die Erweiterung jedoch keine Rolle. Entscheidend ist, ob die Datei über die erforderlichen Berechtigungen verfügt und möglicherweise mit dem entsprechenden Header beginnt. Stellen Sie also sicher, dass diese Dinge richtig sind. (Die Kopfzeile ist die erste Zeile, die in meinem vorherigen Beispiel angezeigt wurde. Die Berechtigungen können mit "chmod a+x filename.batmsgstr "Geben Sie jedoch den tatsächlichen Speicherort des Dateinamens an." Wenn Sie die Datei in Unix ausführen, müssen Sie den gesamten Dateinamen der Skriptdatei angeben, einschließlich der Erweiterung ".bat". (Wenn Sie nicht möchten Machen Sie einfach einen Symlink und lassen Sie den Symlink "gonow" auf "gonow.bat" (oder was auch immer passend ist) verweisen.

Die andere Möglichkeit, dies unter Unix zu tun, besteht darin, die .BAT-Datei mit einer anderen DOS-Software auszuführen. B. COMMAND.COM in Wine oder CMD.EXE in WINE oder andere Wine-Varianten wie Crossover oder andere Software wie DOSBox oder DOSemu. Wenn Sie diese Software verwenden, die ähnlich wie DOS funktioniert, kann diese Software die Datei möglicherweise ausführen, ohne dass Sie die Erweiterung ".bat" angeben müssen.

Eine andere Alternative kann darin bestehen, einfach eine Shell-Skriptdatei zu verwenden, die Java ausführt (da der Inhalt der Batchdatei, die an anderer Stelle erwähnt wird, Java ausführt, zeigt, dass Java ausgeführt wird) und ignorieren Sie den Versuch, eine Datei zu verwenden, die mit der Erweiterung ".bat" endet. (Es wäre also keine .bat-Datei, sondern ein Shell-Skript oder ein symbolischer Link.)