Endlich eine Antwort, die unabhängig von Cygwin selbst ist.
Dies nutzt die Tatsache , dass, wenn ich auf das Verzeichnis bin , C:\\Cool
und ich rufe den Befehl C:\\Cygwin\\bin\\mintty.exe
, mintty
öffnet sich automatisch auf dem aktuellen Verzeichnis, das heißt C:\\Cool
.
Zunächst müssen Sie die Datei C:\\Cygwin\\silent_run.vbs
mit den folgenden Inhalten erstellen :
Function EnquoteString(argument)
EnquoteString = Chr(34) & argument & Chr(34)
End Function
arglist = ""
With WScript.Arguments
For Each arg In .Unnamed
' Wscript.Echo "Unnamed: " & arg
If InStr(arg, " ") > 0 Then
' arg contains a space
arglist = arglist & " " & EnquoteString(arg)
Else
arglist = arglist & " " & arg
End If
Next
End With
CreateObject("Wscript.Shell").Run Trim( arglist ), 0, False
Als Nächstes verwenden Sie zur Installation dieser Antwort eine Windows-Registrierungsdatei. Fügen Sie dazu einfach den Inhalt der folgenden Datei in eine Datei mit dem Namen einC:\\Cygwin\\AddMinttyToContextMenu.reg
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\Terminal Here]
"Icon"="\"C:\\Cygwin\\bin\\mintty.exe\""
"Position"="Middle"
@="Terminal Here"
"CommandFlags"=dword:00000020
[HKEY_CLASSES_ROOT\Directory\Background\shell\Terminal Here\Command]
@="\"C:\\Cygwin\\bin\\mintty.exe\" -w max"
[HKEY_CLASSES_ROOT\Directory\shell\Terminal Here]
"Icon"="\"C:\\Cygwin\\bin\\mintty.exe\""
"Position"="Middle"
@="Terminal Here"
"CommandFlags"=dword:00000020
[HKEY_CLASSES_ROOT\Directory\shell\Terminal Here\Command]
@="cmd.exe /c cd /d \"%V\" && wscript \"C:\\Cygwin\\silent_run.vbs\" \"C:\\Cygwin\\bin\\mintty.exe\" -w max"
Korrigieren Sie nun alle fest codierten Pfade, dh C:\\Cygwin
an dem tatsächlichen Speicherort, an dem sich Ihre Cygwin-Installation befindet.
Öffnen Sie dann einfach die Datei C:\\Cygwin\\AddMinttyToContextMenu.reg
, um Ihre neuen Registrierungseinträge zu installieren, und Sie sind fertig.
Die Datei C:\\Cygwin\\AddMinttyToContextMenu.reg
öffnet zunächst a cmd.exe
, wechselt in das Verzeichnis, in dem Sie sich befinden, und ruft dann C:\\Cygwin\\silent_run.vbs
auf, um das C:\\Cygwin\\bin\\mintty.exe
Terminal mit den Befehlszeilenoptionen zu öffnen-w max
zu öffnen, dh um es maximiert zu öffnen.
Das Skript C:\\Cygwin\\silent_run.vbs
ist erforderlich, um das C:\\Cygwin\\bin\\mintty.exe
Terminal zu öffnen, ohne dass das erste, das cmd.exe
wir geöffnet haben, geöffnet bleibt .
Der erste Eintrag von C:\\Cygwin\\AddMinttyToContextMenu.reg
wird nicht verwendet, C:\\Cygwin\\silent_run.vbs
da die HKEY_CLASSES_ROOT\Directory\Background\shell
Schlüssel standardmäßig bereits im aktuellen Verzeichnis geöffnet sind. Dann können wir einfach aufrufenC:\\Cygwin\\bin\\mintty.exe
direkt , damit es sofort funktioniert.
Verweise:
- So fügen Sie dem Windows Explorer ein Kontextmenüelement für Ordner hinzu
- Befehlszeilenargument für VBScript-Übergabe in Pfaden mit Leerzeichen
- Wie übergebe ich einen Befehl mit Leerzeichen und Anführungszeichen als einzelnen Parameter an CScript?
- Aufrufen von vbscript aus einer anderen vbscript-Datei, wobei Argumente übergeben werden
- https://ss64.com/vb/syntax-args.html
- Überprüfen Sie, ob die Zeichenfolge Leerzeichen enthält
- Kommandozeile still mit VbScript ausführen und Ausgabe bekommen?
- http://www.vbsedit.com/html/6f28899c-d653-4555-8a59-49640b0e32ea.asp
- /superuser/62525/run-a-batch-file-in-a-completely-hidden-way
- Wie führe ich ein Batch-Skript aus, das als Argument in VBscript empfangen wurde?
- Kann ich ein Argument an ein VBScript übergeben (mit cscript gestartete vbs-Datei)?