Finalmente una risposta indipendente dallo stesso Cygwin.
Questo utilizza il fatto che, se mi trovo nella directory C:\\Coole chiamo il comando C:\\Cygwin\\bin\\mintty.exe, minttysi aprirà automaticamente nella directory corrente, ovvero C:\\Cool.
Innanzitutto, dovrai creare il file C:\\Cygwin\\silent_run.vbscon i seguenti contenuti:
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
Successivamente, per installare questa risposta, utilizzerai un file di registro di Windows. Per questo, basta inserire il contenuto del seguente file in un file denominatoC:\\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"
Ora, correggi tutti i percorsi codificati, ovvero C:\\Cygwinla posizione effettiva in cui si trova l'installazione di Cygwin.
Quindi, basta aprire il file C:\\Cygwin\\AddMinttyToContextMenu.regper installare le nuove voci del registro e il gioco è fatto.
Il file C:\\Cygwin\\AddMinttyToContextMenu.regfunziona aprendo prima a cmd.exe, passando alla directory in cui ci si trova, quindi chiamando C:\\Cygwin\\silent_run.vbsper aprire il C:\\Cygwin\\bin\\mintty.exeterminale con le opzioni della riga di comando -w max, ovvero per aprirlo al massimo.
Lo script C:\\Cygwin\\silent_run.vbsè necessario per aprire il C:\\Cygwin\\bin\\mintty.exeterminale senza tenere cmd.exeaperto il primo che abbiamo aperto.
La prima voce di C:\\Cygwin\\AddMinttyToContextMenu.regnon viene utilizzata C:\\Cygwin\\silent_run.vbsperché per impostazione predefinita le HKEY_CLASSES_ROOT\Directory\Background\shellchiavi sono già aperte nella directory corrente, quindi possiamo semplicemente chiamare C:\\Cygwin\\bin\\mintty.exedirettamente per farlo funzionare immediatamente.
Riferimenti:
- Come aggiungere la voce di menu contestuale a Esplora risorse per cartelle
- VBScript passa l'argomento della riga di comando in percorsi con spazi
- Come passare un comando con spazi e virgolette come singolo parametro a CScript?
- chiamando vbscript da un altro file vbscript passando argomenti
- https://ss64.com/vb/syntax-args.html
- Controlla se la stringa contiene spazio
- Esegui la riga di comando in silenzio con VbScript e ottieni output?
- http://www.vbsedit.com/html/6f28899c-d653-4555-8a59-49640b0e32ea.asp
- /superuser/62525/run-a-batch-file-in-a-completely-hidden-way
- Come eseguire lo script Batch ricevuto come argomento su VBscript?
- Posso passare un argomento a un VBScript (file vbs avviato con cscript)?