Wreszcie odpowiedź niezależna od samego Cygwina.
Wykorzystuje to fakt, że jeśli jestem w katalogu C:\\Cool
i wywołuję polecenie C:\\Cygwin\\bin\\mintty.exe
, mintty
automatycznie otworzy się w bieżącym katalogu, tj.C:\\Cool
.
Najpierw musisz utworzyć plik C:\\Cygwin\\silent_run.vbs
o następującej treści:
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
Następnie, aby zainstalować tę odpowiedź, użyjesz pliku rejestru Windows. W tym celu wystarczy umieścić zawartość następującego pliku w pliku o nazwieC:\\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"
Teraz napraw wszystkie ścieżki zakodowane na stałe, tj. C:\\Cygwin
Do rzeczywistej lokalizacji, w której jest zainstalowana instalacja Cygwin.
Następnie wystarczy otworzyć plik C:\\Cygwin\\AddMinttyToContextMenu.reg
aby zainstalować nowe wpisy rejestru i gotowe.
Plik C:\\Cygwin\\AddMinttyToContextMenu.reg
działa, otwierając najpierw a cmd.exe
, przechodząc do katalogu, w którym się znajdujesz, a następnie wywołując, C:\\Cygwin\\silent_run.vbs
aby otworzyć C:\\Cygwin\\bin\\mintty.exe
terminal z opcjami wiersza poleceń-w max
, tj. Otworzyć go zmaksymalizowany.
Skrypt C:\\Cygwin\\silent_run.vbs
jest wymagany, aby otworzyć C:\\Cygwin\\bin\\mintty.exe
terminal bez utrzymywania pierwszego cmd.exe
, otwartego.
Pierwszy wpis C:\\Cygwin\\AddMinttyToContextMenu.reg
nie jest używany, C:\\Cygwin\\silent_run.vbs
ponieważ domyślnie HKEY_CLASSES_ROOT\Directory\Background\shell
klucze są już otwarte w bieżącym katalogu, a następnie możemy po prostu zadzwonić C:\\Cygwin\\bin\\mintty.exe
bezpośrednio, aby uruchomić go z pudełka.
Bibliografia:
- Jak dodać pozycję menu kontekstowego do Eksploratora Windows dla folderów
- VBScript przekazuje argument linii poleceń w ścieżkach ze spacjami
- Jak przekazać polecenie ze spacjami i cudzysłowami jako pojedynczy parametr do CScript?
- wywoływanie vbscript z innego pliku vbscript z przekazywaniem argumentów
- https://ss64.com/vb/syntax-args.html
- Sprawdź, czy ciąg zawiera spację
- Uruchamianie wiersza poleceń w trybie cichym za pomocą VbScript i uzyskiwanie danych wyjściowych?
- http://www.vbsedit.com/html/6f28899c-d653-4555-8a59-49640b0e32ea.asp
- /superuser/62525/run-a-batch-file-in-a-completely-hidden-way
- Jak uruchomić skrypt Batch otrzymany jako argument na VBscript?
- Czy mogę przekazać argument do VBScript (plik vbs uruchomiony za pomocą cscript)?