Die Anwendung, die ich starten möchte, ist MongoDB. Wenn ich es normal starten würde, sieht es so aus:
Die Anzahl der Zeilenumbrüche gefällt mir nicht und ich habe viel Platz auf dem Bildschirm. Daher möchte ich diesen Platz nutzen, um die Zeilenumbrüche zu beseitigen.
Ich kann die Größe des Konsolenfensters mit ändern MODE
, also habe ich eine Batch-Datei wie diese geschrieben:
@ECHO OFF
MODE con:cols=140 lines=70
%~dp0mongodb\bin\mongod --dbpath %~dp0data --rest
So weit, ist es gut. Wenn ich diese Batch-Datei starte, wird nach Wunsch ein größeres Fenster angezeigt.
Aber wenn ich jetzt Ctrl+ drücke C, um MongoDB zu beenden, bekomme ich die nervige Aufforderung:
Terminate batch job (Y/N)?
Das ist nutzlos, weil der Befehl, aus dem ich gerade herausgekommen bin, sowieso der letzte Befehl im Stapeljob war und das Ergebnis das gleiche ist, egal was ich antworte.
Wie kann ich ein größeres Konsolenfenster für die Anwendung erhalten, ohne diese Eingabeaufforderung zu haben, wenn ich Ctrl+ drücke C?
quelle
Soweit ich die Frage verstehe, soll MongoDB die angegebene Größe des Konsolenfensters haben und beendet werden, wenn Sie Ctrl+ drücken C. Dann ist die Antwort ziemlich einfach: Verwenden Sie die Verknüpfung , um es zu starten.
Ich habe keine
mongod
ausführbare Datei, daher würde ich sieperl.exe
als Beispiel verwenden. Wenn Sie es über das Dialogfeld " Ausführen " ( Windows+ R) starten , beträgt die Größe des Konsolenfensters standardmäßig 80 × 25 mit einer Puffergröße für 300 Zeilen.mongod
(oderperl
in meinem Fall).mongod
.Wenn Sie nun auf diese Verknüpfung klicken, hat das Konsolenfenster die angegebene Größe. Wenn Sie Ctrl+ drücken C, wird die Anwendung beendet und das Fenster ohne zusätzliche Eingabeaufforderungen geschlossen.
Sie können das Layout des Fensters auch ändern, nachdem Sie es über das Dialogfeld " Ausführen " gestartet haben . Klicken Sie mit der rechten Maustaste auf den Titel des Konsolenfensters und klicken Sie auf Eigenschaften . Klicken Sie auf die Registerkarte Layout , passen Sie die Fenstergröße an und klicken Sie auf OK , um die Eigenschaften zu schließen und die Änderungen sofort zu übernehmen. (Wenn das Fenster über eine Verknüpfung gestartet wurde, werden die Eigenschaften der Verknüpfung aktualisiert.)
Wenn Sie das nächste Mal dieselbe Anwendung starten, wird die Größe des Konsolenfensters auf magische Weise dieselbe sein. (Ich habe es dieses Mal nicht überprüft, aber es hat funktioniert.)
quelle
mongod.exe
ist nicht festgelegt. Dies hängt von der Bereitstellung der Anwendung ab. Aus diesem Grund habe ich direkt über die Konsole nach einer Lösung gesucht. Wenn ich einen relativen Pfad in die Ziel- oder Arbeitsverzeichnisfelder für eine Verknüpfung einfüge, werden diese nicht akzeptiert :(start cmd /k
und übergibt einen zusätzlichen Parameter oder legt eine Umgebungsvariable fest. Die zweite Instanz ändert dann die Konsolenfenstergröße und startetmongod.exe
.Terminate batch job (Y/N)?
Aufforderung: \ Ich habe gerade die Implementierung einer Wrapper-Anwendung abgeschlossen , um das Problem für mich zu lösen.Die Standardeinstellungen für das Konsolenlayout befinden sich hier in der Registrierung:
Sie können diese Einstellungen ändern. Sie gelten für ALLE Befehlsfenster, die unabhängig vom Pfad gestartet werden. Leider sind die Rohwerte nicht menschenfreundlich.
Öffnen Sie ein normales cmd-Fenster, und bearbeiten Sie die Einstellungen nach Ihren Wünschen, um sie nach Ihren Wünschen festzulegen. Suchen Sie in der Registrierung nach dem obigen Pfad, und unter "Console" für cmd.exe sollte ein Unterschlüssel angezeigt werden. Exportieren Sie diesen Schlüssel in eine Datei, ändern Sie den Pfad in den obigen und importieren Sie ihn oder kopieren Sie die Werte einfach manuell von einem zum anderen. Anschließend können Sie den für cmd.exe spezifischen Eintrag löschen. Jetzt verwenden alle Befehlsfenster, die geöffnet werden, die geänderten Standardeinstellungen.
Ich fand es praktisch, ein paar Registrierungseintragsdateien mit meinen Standardeinstellungen zu erstellen, damit ich sie beim ersten RDP-Start problemlos auf einen neuen Server kopieren kann. Ich habe Presets für die beiden Größen erstellt, die ich normalerweise verwende.
Für 1024 x 768 (ich verwende dies für Server, auf die normalerweise über ein Multisession-RDP-Tool zugegriffen wird):
Für 1280 x 1024:
quelle
Start
Stellen Sie den Befehl vor den Aufruf von mongodb. Ich glaube, das sollte das Problem beheben.quelle
start /b
, wird das Konsolenfenster geöffnet, nachdem ich Strg + C gedrückt habe.Wenn Sie gerne eine Batchdatei zusammen mit ein paar winzigen Hilfsprogrammen
ausführen, habe ich hier eine vollständige Lösung für Sie veröffentlicht: Wie kann eine Batchdatei ein Programm ausführen und die Position und Größe des Fensters festlegen?
Inhalt wie unten. . . .
Diese Demo-Batch-Datei führt ein Befehlszeilenprogramm aus und legt die Position und Größe des Eingabeaufforderungs-Konsolenfensters fest. Das allgemeine Thema dieses Stapels ist dasselbe wie in den beiden vorherigen Lösungen (auf der Seite "Stapelüberlauf" im obigen Link), es gab jedoch einige eindeutige Probleme und Problemumgehungen, damit dies funktioniert - dies ist ein Eingabeaufforderungsfenster, das von 'CMD gehostet wird .EXE und kein GUI-Fenster wie 'EXPLORER.EXE'.
Lesen Sie alle Kommentare und die Beschreibung in der Batch-Datei, um weitere Informationen zu erhalten.
Verwendete Tools:
1. MonitorInfoView von Nir Sofer (41 KB)
2. NirCmd von Nir Sofer (43 KB)
3. GetPIDs von Daniel Scheibli (280 KB)
4. upx.exe --- ist das Kommandozeilenprogramm, das wir für diese Demo verwenden werden; Legen Sie es in dasselbe Verzeichnis wie die Batch-Datei.
5. Eine Batch-Datei --- siehe unten
Sammeln Sie alle fünf Dateien in einem Verzeichnis. Dies ist die Batch-Datei, die auf jedem Windows-System ausgeführt werden kann.
Dieser Demo-Stapel wird nicht nur ein benutzerdefiniertes Konsolenfenster anzeigen, sondern auch
upx.exe
mit den Befehlszeilenschaltern ausgeführt--best -v -o getpids-compressed.exe getpids.exe
. Wir werden unser Tool 'GetPIDs' auf 88 KB komprimieren. Doppelklicken Sie nach dem Start auf die Titelleiste dieses Konsolenfensters, um ein interessantes Phänomen zu sehen. Dieses Konsolenfenster verhält sich wie eine grafische Benutzeroberfläche!quelle