Wreszcie odpowiedź niezależna od samego Cygwina.
Wykorzystuje to fakt, że jeśli jestem w katalogu C:\\Cooli wywołuję polecenie C:\\Cygwin\\bin\\mintty.exe, minttyautomatycznie otworzy się w bieżącym katalogu, tj.C:\\Cool .
Najpierw musisz utworzyć plik C:\\Cygwin\\silent_run.vbso 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.regdział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.vbsaby otworzyć C:\\Cygwin\\bin\\mintty.exeterminal z opcjami wiersza poleceń-w max , tj. Otworzyć go zmaksymalizowany.
Skrypt C:\\Cygwin\\silent_run.vbsjest wymagany, aby otworzyć C:\\Cygwin\\bin\\mintty.exeterminal bez utrzymywania pierwszego cmd.exe, otwartego.
Pierwszy wpis C:\\Cygwin\\AddMinttyToContextMenu.regnie jest używany, C:\\Cygwin\\silent_run.vbsponieważ domyślnie HKEY_CLASSES_ROOT\Directory\Background\shellklucze są już otwarte w bieżącym katalogu, a następnie możemy po prostu zadzwonić C:\\Cygwin\\bin\\mintty.exebezpoś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)?