Cygwin'i belirli bir klasörde açma


226

Cygwin'i belirli bir klasörde açacak bir Cygwin kısayolunu nasıl oluşturabilirim? Bu yazmak zorunda kalmaz

cd /cygdrive/c/Users/Tom/Desktop/

Cygwin'i her başlattığımda.


2
bir .bat dosyası oluşturun: burada bir öğretici bilgisayarhope.com/batch.htm
Umar Jamil

Not: Chere paketinin yönetici ayrıcalıklarıyla başlatılması gerekebilir. Bunu yakalarsanız ve kullanmaya eğilimliyseniz sudo, beklenen sonucu alamayabilirsiniz. Bu durumda, Windows makinesinde yönetici kullanıcı olarak oturum açın.
dreftymac

Yanıtlar:


410

Cygwin'i yüklediğinizde (veya daha önce yüklediyseniz, tekrar indirin ve bir güncelleme çalıştırmak için kuruluma yeniden başlayın), chere"Kabuklar" kategorisi altında paketi seçtiğinizden emin olun .

Cygwin başlatıldıktan sonra, (bir yönetici olarak) bir Cygwin terminali açmak ve komutu: chere -i -t mintty -s bash.

Şimdi Windows sağ tıklama bağlam menüsünde "Bash Prompt Here" olmalıdır.

( mintty , Cygwin'in varsayılan terminalidir. Bu -tseçenekle seçmezseniz , "Burada Bash İstemi", yatay yeniden boyutlandırmayı engelleyen Windows Komut İstemi ile aynı terminali kullanır.)


39
Harika bulmak, teşekkürler! Açmak istediğiniz terminali -t, örneğin kullandığınız naneyi açmak için belirtebileceğinizi keşfettim.chere -i -t mintty
Kevin Condon

29
Sadece 64bit cygwin (1.7.27) ile test edildi ve şimdi var gibi görünüyor. pro-tip: cygwin terminalini yönetici ayrıcalıklarıyla başlatmayı unutmayın.
BuildTheRobots

11
Dikkat edilmesi gereken bir şey daha var. chere -i -t mintty -fÜzerine yazmaya zorlamak için bunu zaten yaptıysanız . Yine de cygwin'i yönetici olarak çalıştırmanız gerekecektir.
Greg Jennings

29
W7x64 üzerinde izin sorunları vardı (Hata (5): Erişim reddedildi. Kovan yazılabilir değil). Yönetici olarak Cygwin başlatılarak çözüldü.
DmitrySandalov

17
Benim durumumda -s bashchere -i -t mintty -s bash
Cygwin'in

97

İşte kullandığım. cherePaket veya kayıt defteri müdahalesi gerektirmez . Windows 7'de çalışır.

"Gönder" klasörünüze gidin:

C:\Users\<your_user_name>\AppData\Roaming\Microsoft\Windows\SendTo

Alanında buna Bash Heresahip adlı bir kısayol oluşturun Target:

C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico  C:\cygwin\bin\bash.exe  -l -c "cd \"$0\" ; exec bash"

Windows Gezgini'nde bir klasörü sağ tıklatıp seçersiniz Send To > Bash Here.

Ve işte karşınızdaki hile, şu anki bash dizinizde bir Windows Gezgini açıyor. Bu takma adı oluşturun:

alias winx='/cygdrive/c/Windows/explorer.exe /e,\`cygpath -w .\`'

Not: cygpath -w .Yukarıdaki kısım arka kenelerle çevrilidir.

Şimdi winxbash istemine yazdığınızda bir Win Explorer açılır.

Not: winx sizi belgeler klasörünüze yönlendirirse,

alias winx='/cygdrive/c/Windows/explorer.exe /e,`cygpath -w $PWD`'

3
Çok güzel bir numara, ama winxtakma ad Cygwin kurulumumda çalışmadı. Her iki ters eğik çizgi kaldırmak ve değiştirmek zorunda .olan $PWDişe yaraması için.
not2qubit

Kısayol (kurulumumun Cygwin64 yolunu kullanacak şekilde uyarlandı) cygwin'i kullanıcı klasörüme açarsa ne olur? :( Belki bu sadece 32 bit Cygwin ile çalışır?
Alex Hall

Bu da benim için çalışıyoralias winx='/cygdrive/c/Windows/explorer.exe /e,$(cygpath -wa .)'
Wakan Tanka

1
In: cygwin 2.6.0 (Win 7 x64 üzerine) çok daha kolay yapılabilir cygstart .Geçerli klasördeki veya herhangi bir klasör sözdizimi ile Explorer'ı açmak için cygstart .., cygstart /your/path... vb
244an

2
Uyarı: çalışma dizinini başka bir şeye değiştirdikten sonra bile C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico C:\cygwin\bin\bash.exe -l -c "cd \"$0\" ; exec bashdosya tanıtıcısını $0dizine açık tutar . Daha da kötüsü ALT+F2, çalışma dizinini değiştirmiş olsanız bile , pencerenin yumurtlama kopyası ( ), başka bir dosya tanıtıcısı açar $0. Bu, $0herhangi bir işlemde silmek / değiştirmek isteyebilecek bazı işlemleri engelleyebilir . Erişim sırasında 'İzin Reddedildi' hatası alırsanız $0bunun nedeni olabilir
matt

33

Cygwin terminalinden şu komutu çalıştırın:

echo "cd your_path" >> ~/.bashrc

Yeni bir bash oturumu açtığınızda .bashrc komut dosyası çalıştırılır. Yeni bir cygwin oturumu açtığınızda yukarıdaki kod your_path dizininizle değiştirilir .


3
İŞTE CEVAP! ÇOK KOLAY.
Devin Walker

Evet ! O kolay ! Oyvermek !
Alex Byrth

19
Bu cevap değildir, çünkü söz konusu dizini kullanan bir kısayol oluşturmaz, sorunun gerektirdiği gibi, Cygwin kabuğunu başlatmanın tüm yöntemlerinin davranışını değiştirir. Yerel bir sorunu çözmek için genel bir ayarı (veya giriş profilini) değiştirmemelisiniz.
Ben Voigt

Bir keresinde kullanılan tam yanlışlıkla birini kapalı bırakarak şifre dosyası için bir kullanıcı eklemek için bu yöntemi >karakterler. Sonra :-) çıkış yaptım
paxdiablo

@paxdiablo ouch
bschwagg

30

Sağ tıklama bağlam menüsünde "Cygwin Burada Aç" seçeneğini koyan bir .reg dosyası oluşturdum. İlk kurulumda yüklemediyseniz apt-cyg kullanarak yükleyebileceğiniz Cygwin "chere" paketine bağlıdır .

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="C:\\cygwin\\bin\\mintty.exe -e /bin/xhere /bin/bash.exe"

7
Bunu nasıl kullanacağını merak edenler için, gri arka plan metnini kopyalayın ve "foo.reg" adlı bir metin dosyasına koyun ve çift tıklayın.
Andrew Moylan

3
Burada en iyi çözümü + 1'leyin. Ve bahsettiğiniz için teşekkürler apt-cyg, bu aracı bilmiyordum
user11153

Tam da aradığım şey buydu ve hatta başka şeylerle de bana yardımcı oldu çünkü Microsoft sitesi bile bana aynı sonucu vermedi.
FilBot3

"Cygwin" olarak değiştirmek zorunda kaldım ama şu hatayı alıyorum: "/ bin / xhere çalıştırılamadı: Böyle bir dosya veya dizin yok"
Totty.js

@ Totty.js, 'chere' paketini Cygwin'e yüklediğinizden emin misiniz?
Jeutnarg

17

Cygwin64 veya chere olmayan kurulumlar için bir kayıt defteri girdisinde aşağıdaki komutu kullanabilirsiniz (yolunuz nedeniyle pencereler varsayarak, ayrıca cygwin kurulum dizininin c: \ cygwin64 olduğu varsayılarak)

C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd "`cygpath "%V"`"; bash'

Windows 7 ve 8 üzerinde çalışır Kayıt Defteri dosyasında buradan indirebilirsiniz: http://tomkay.me/blog/Cygwin64---Open-Here-18

Windows Registry Editor Version 5.00
; Open cygwin to folder
; http://tomkay.me - Tom Kay

[HKEY_CLASSES_ROOT\Folder\shell\open_cygwin]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Folder\shell\open_cygwin\command]
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"%V\"`\"; bash'"

[HKEY_CLASSES_ROOT\Directory\Background\shell\open_cygwin]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\open_cygwin\command]
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"%V\"`\"; bash'"

Neden 3 (x2) kayıt defteri girdiniz olduğunu açıklayabilir misiniz?
not2qubit

1
Dizin, Drive ve Arka Plan bağlamları içindir
Tom Kay

Sonunda, benim için çalışan bir çözüm, tamamen anlamak için bazı sorunlarım olmasına rağmen ;-) ['exec bash' sonra 'bash']. İpucu: 3 girişi 'Dizin', 'Sürücü' ve 'Arka Plan' yerine 1: 'Klasör' ile değiştirebilirsiniz.
t0r0X

yalnızca 'Klasör' ile, bağlantı bir sürücünün içerik menüsünde görünür, ancak yürütülemez. Ancak, 'Klasör' ve 'Dizin \ Arka Plan' ile 2 girişi
Tom Kay

1
Emacs için: "C: \\ cygwin \\ bin \\ mintty.exe -i /Cygwin-Terminal.ico / bin / bash -l -c 'emacs \" cygpath \"%V\"\ ";'"
Jan Matousek

12

Bu dizinin varsayılan olarak olmasını istiyorsanız cd, ~/.profiledosyanıza bir ifade eklemeniz yeterlidir .

Ne yapmak eğilimindedir benim her zamanki dizin ayarlamak için artı, aynı zamanda benim ortak durumlarda takma adları tanımlamak için bu yöntemi kullanın:

alias tom="cd /users/tom"

veya eşdeğeriniz. Bu, dizinleri çok hızlı değiştirmeme izin veriyor.


Bu takma adın ~/.profiledosyaya da eklenmesi mi yoksa yalnızca bir kez çalıştırılması mı gerekiyor?
iono

2
@tomeoftom, bunu bir kabukta çalıştırırsanız, yalnızca o kabuğu etkiler. Başladığınız başkalarını etkilemez. Bu nedenle, her zaman kullanılabilir olmasını istiyorsanız, başlangıç ​​dosyalarınızdan ~/.profilebirine (bu bir olasılıktır) koymanız gerekir .
paxdiablo

~ / .profile içine konduğunda benim için çalışmadı, ama ~ / .bashrc çalıştı.
zupa

@zupa, başlangıç ​​dosyalarının kaynaklandığı kurallar oldukça karmaşıktır ( bashyeterince derin kazarsanız man sayfasında her şey var olsa da ). Bu yüzden .profilebir olasılık olarak söyledim .
paxdiablo

.profile sonuç olarak .bashrc kaynağını kullanır, böylece bu komutu bashrc'ye eklemek isteyebilirsiniz. (.profile benim için çalışmadı)
laertis

8

Cygwin'imi cherepaket olmadan başlatmak için ve Icon'ı kullanıyorum .

  1. Masaüstümde cygwin terminali için bir kısayol oluştur.
  2. Simgeyi R-tıklatın ve özellikleri seçin.
  3. Kısayol sekmesinde HEDEF için bunu kullanın: C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
  4. START IN için, dizin / klasörün yolunu cygwin'i başlatmak istediğiniz yere koyun. yaniC:\some\dir\name\here

ok 2 şey 1. -c"Start" içinde bir yol sağladığınız sürece "Hedef" e eklemek hiçbir fark yaratmaz 2. bu çözüm bir sorun oluşturur PATH. cygwin /usr/local/bin:/usr/bin, PATH sistemine başlayamaz ve bazı ikili dosyalarını çağıramaz. Yapılandırma, büyük olasılıkla /etc/profile>> `if [$ {CYGWIN_NOWINPATH-addwinpath} =" addwinpath "]; sonra ``
laertis

8

Two7s_clash'ın dediği gibi, önce cherepaket ve kurulum naneini yüklemeniz gerekir :

  1. Cygwin terminalini yönetici olarak açın
  2. apt-cyg install chere
  3. chere -i -t mintty

Artık Windows Gezgini'nde (Bağlam Menüsü) Sağ fare tıklaması ile cygwin'i belirli bir dizinde açıp "Burada Bash İstemi" ni seçebilirsiniz.

Ayrıca windows komut istemini kullanarak cygwin'i belirli bir dizinden açabilirsiniz:

  1. Windows komut istemini aç
  2. cdÖzel dizine git ( )
  3. gerçekleştirmek C:\cygwin64\bin\mintty.exe C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

    Bu komut, geçerli dizini komut isteminden alınan cygwin'i açar.

FreeCommander

Bu komut cygwin'i FreeCommander gibi özel dosya yöneticisinden açmak için de kullanılabilir.

Geçerli dizini FreeCommander'dan alınmış olan cygwin'i açmak için aşağıdakileri yapın:

  1. Araçlar -> Favori Araçlar -> Favori araçlar düzenleme ... (Ctrl + Üst Karakter + Y)
  2. Yeni bir araç çubuğu (+ Simge) ekleme, Kısayol: Ekle

    • İsim: cygwin
    • Program veya klasör: C:\cygwin64\bin\mintty.exe
    • Başlangıç ​​klasörü: %ActivDir%
    • Parametre: C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

FreeCommander'dan cygwin'i açmak için özel kısayol ekleyebilirsiniz:

  1. Araçlar -> Klavye kısayollarını tanımlama
  2. "Favori araç 01" (veya "Favori araç N") seçeneğine gidin
  3. Yeni kısayol tuşu ata: Ctrl+ Shift+ kullanıyorumT

Büyük referans: MinTTY Wiki, makale İpuçları: Belirli bir dizinden başlamak


5

Kendi seçtiğiniz bir dizinde bir Cygwin terminalini başlatan bir Windows kısayolu oluşturmak için aşağıdakileri deneyin:

  • Windows masaüstünü sağ tıklayın, 'Yeni'yi ve ardından' Kısayol'u seçin.

  • Öğenin konumu için, aşağıdaki metni girin, minttyyolu gerektiği gibi değiştirin ve belirtilen yerde istenen dizinin adını değiştirin.

    C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd DESIRED-DIRECTORY; exec bash'
    

    Örneğin, OP aşağıdaki metni kullanır:

    C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd /cygdrive/c/Users/Tom/Desktop/; exec bash'
    
  • Sonrakine tıkla'.

  • Kısayol için istediğiniz adı girin ve 'Son'u tıklayın.

Cygwin terminallerini sık erişilen çeşitli dizinlerde açmak için masaüstüne birden fazla kısayol yerleştirilebilir.

Çözümünden esinlenen yayınlanan Netbeans belirli bir dizinde bir Cygwin kabuk nasıl açılır? superuser.com adresinde .


4

Cygwin.bat dosyasını bulun ve aşağıdaki gibi içerik oluşturun:

@echo off
set newpath=%cd:\=/%
pushd "%~dp0"
chdir bin
bash --login -i -c "cd \"%newpath%\"; exec bash"

Çevre PATH için cygwin.bat yolunu ekleyin.

Şimdi herhangi bir klasöre adres çubuğuna yazabilirsiniz:

cygwin

Ayrıca cmd.exe içinde zaman yazabilirsiniz


3

Win7 geçerli dizinde zsh başlatmak için aşağıdaki kod satırlarını kullandım.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="\"C:\\Programmieren\\cygwin64\\bin\\mintty.exe\" -i /Cygwin-Terminal.ico /bin/zsh --login -c 'cd \"%V\";zsh'"

% L veya% 1 yerine% V kullandığımı unutmayın (çünkü her ikisi de benim için çalışmadı)


3

Yeni bir yükleme gerektiğinde, adlandırılmış bir Windows "kullanıcı ortamı değişkeni" oluştururum HOMEve buna "Belgelerim" olan her yerde yol atar.

Cygwin yükleyicisi HOMEdeğişkeni algılar , otomatik olarak bir cygpath'e çevirir ve bunu ~ dizinim olarak seçer.

Bu, son 5 yılda profesyonelce kullandığım her iş istasyonu için iyi çalıştı (yaklaşık 3 veya 4, Win7). Bu makinelerde her zaman tek kullanıcı oldum, etkisinin ne olduğunu söyleyemem.


3

Sağ tıkladığınız herhangi bir klasörde Cygwin'i açmak için bir kayıt defteri düzenleme komut dosyası hazırladım. GitHub'ımda.

İşte GitHub'ım

RegEdit64 bit makineler için Github örnek kodu:

REGEDIT4

[HKEY_CLASSES_ROOT\Directory\shell\CygwinHere]
@="&Cygwin Bash Here"

[HKEY_CLASSES_ROOT\Directory\shell\CygwinHere\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\CygwinHere]
@="&Cygwin Bash Here"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\CygwinHere\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""

"Kayıt defterine erişilirken hata oluştu." hata aşağıdaki @mpersico tarafından cevap bakın ... beni 15 dakika kurtaracak :)
Daniel Sokolowski

2

Cygwin terminalini Yönetici olarak açın

Powershell'de (çikolata kullanarak):

choco install cyg-get

Cygwin Yükleyecek sağ tıklama menüsü

cyg-get install chere
chere -i

Artık herhangi bir klasörde sağ tıklayıp "Bash Prompt Here" ı kullanabilirsiniz.


1

Dosyanızın Iconyoluna bir alan kümesi ekleyerek simgeyi kabuğa ekleyebilirsiniz Cygwin.ico.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Cygwin"
"Icon"="\"C:\\cygwin64\\Cygwin.ico\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="C:\\cygwin64\\bin\\mintty.exe -e /bin/xhere /bin/bash.exe"

Bence xhere'in varlığının bir ön koşulu, diğer cevaplarda belirtildiği gibi chere'nin kurulmasıdır.
Samuel

1

Windows makinemde almadı:

chere -i -t nane

Nane kabuğu mevcut olmadığından, ancak kül bash cmd çizgi mksh pdksh posh tcsh zsh passwd gibi çeşitli kabuklar arasından seçim yapabilirsiniz.

bu yüzden kullandım:

chere -i -s bash


Nane bir kabuk değil, bir terminal emülatörüdür.
Palec

Bu asıl soruya nasıl cevap veriyor?
Leigh

Bu, sistemlerinde nane olmayanlara yardım edecek ve yukarıda sağlanan çözümü denemeye çalışırken hata alacak, ayrıca yukarıda verilen çözümü de takip ettim, ancak Windows makinemde işe yaramadı, ancak cevabım sorunu çözdü.
user3065757

1

Sadece cygwin terminali açıp yazabilirsiniz: cd ve sürükle n sonra istediğiniz klasörü bırakın son girin!


Bu, sorulan soruyu tam olarak çözmese de, çok yararlı bir ipucu. Teşekkürler.
RoG

1

Kayıt defterini kullanan yanıtta, Windows 2008 R2 SP1'de, Arka Planı yoldan çıkarmanız gerektiğini buldum. Ayrıca, chere ve xhere cygwin64'ün bir parçası olmadığından, kayıt defteri ve Gönder çözümlerini birleştirerek her ikisi için de çalışan bir çözüm. 'E: \ cygwin64' yerine kurulum yerinizi yazın:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash\command]
@="E:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico --exec /bin/bash.exe --login -c \"cd '%1' ; exec bash -rcfile ~/.bashrc\""

0

Bu, Windows 8.1'de benim için çalışan tek Cygwin64 kayıt defteri çözümüdür:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\mintty]
@="Mintty from Here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\mintty\command]
@="C:\\cygwin64\\bin\\mintty.exe -h always -e /usr/bin/ash -c 'cd  \"$(/usr/bin/cygpath \"%L\")\";  exec /usr/bin/bash  '"

'C: \ cygwin64' yolunuzu gerektiği gibi değiştirdiğinizden emin olun.


0

Toplu iş dosyasını oluşturdum ve Cygwin'in / bin dizinine koydum. Bu komut dosyası, Cygwin'de seçilen klasörleri ve sürücüleri açmak için kayıt defteri girdilerini yüklemeye / kaldırmaya izin verecek şekilde geliştirilmiştir. Ayrıntılar için bağlantıya bakın http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html bakın .

Güncelleştirme: Bu çözüm erken önerilerle aynı şeyi yapar, ancak Windows Kayıt Defteri ile yapılan tüm işlemler komut dosyasında gizlidir.

Yükleme komutunu gerçekleştirin

cyghere.bat /install

Kaldırma komutunu yerine getirme

cyghere.bat /uninstall

0

Ayrıca, cygwin komutlarımı çalmak için kullanılan git ile ilgili bir sorunum vardı - bu yüzden çalıştırmam gerekiyordu
C:\cygwin\bin\mintty.exe -
ama yönetici olarak yükledikten chereve yürüttükten sonra chere -i -t mintty -f(yukarıya bakın) şunları kullanabilirsiniz:
C:\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "."
Total Commander'a özel düğme olarak ekledim (sağ paneli tıklayın> ekle ...) ve çok iyi çalışıyor.


0

move.shAşağıdaki kodu içeren bir bash dosyası oluşturun C:\cygwin64\bin\run.exe -p /bin bash runFile.sh Bu Cygwin'i başlatır ve Cygwin'in runFile.shbin dizininde mevcut olanı çalıştırır Diyelim ki belirli bir dizine gitmek istediğinizi varsayalım E:\coderunFile.sh aşağıdaki kodu içerircd E: cd code


0

Sonunda Cygwin'den bağımsız bir cevap.

Bu benim dizin isem, gerçeğini kullanır C:\\Coolve ben komut diyoruz C:\\Cygwin\\bin\\mintty.exe, minttyyani geçerli dizinde, üzerinde otomatik olarak açılır C:\\Cool.

İlk olarak, dosyayı C:\\Cygwin\\silent_run.vbsaşağıdaki içeriklerle oluşturmanız gerekir :

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

Ardından, bu yanıtı yüklemek için bir Windows Kayıt Defteri dosyası kullanacaksınız. Bunun için aşağıdaki dosyanın içeriğini adlı bir dosyayaC:\\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"

Şimdi, tüm sabit kodlanmış yolları, yani C:\\CygwinCygwin kurulumunuzun açık olduğu gerçek konuma sabitleyin .

Ardından, C:\\Cygwin\\AddMinttyToContextMenu.regyeni kayıt defteri girişlerinizi yüklemek için dosyayı açmanız yeterlidir.

Dosya , C:\\Cygwin\\AddMinttyToContextMenu.regönce a'yı açıp cmd.exebulunduğunuz dizine geçerek , komutu komut satırı seçenekleriyle terminali C:\\Cygwin\\silent_run.vbsaçmaya C:\\Cygwin\\bin\\mintty.exeçalışarak çalışır-w max açmaya, yani ekranı kapatarak açmaya çalışır.

Komut dosyası C:\\Cygwin\\silent_run.vbs, C:\\Cygwin\\bin\\mintty.exeilk cmd.exeaçtığımız, açık bırakmadan terminali açmak için gereklidir .

İlk girişi C:\\Cygwin\\AddMinttyToContextMenu.regkullanılmaz C:\\Cygwin\\silent_run.vbsçünkü varsayılan olarak HKEY_CLASSES_ROOT\Directory\Background\shellanahtarlar geçerli dizinde zaten açıktır, o zamanC:\\Cygwin\\bin\\mintty.exe kutunun dışında çalışmak için doğrudan .

Referanslar:

  1. Klasörler için Windows Gezgini'ne bağlam menüsü öğesi nasıl eklenir
  2. Boşluk içeren yollarda VBScript pass komut satırı bağımsız değişkeni
  3. Boşlukları ve tırnak işaretlerini içeren bir komutu CScript'e tek bir parametre olarak nasıl iletebilirim?
  4. bağımsız değişkenleri geçen başka bir vbscript dosyasından vbscript çağırma
  5. https://ss64.com/vb/syntax-args.html
  6. Dizenin boşluk içerip içermediğini kontrol edin
  7. Komut satırını VbScript ile sessizce çalıştırıyor ve çıktı alıyor musunuz?
  8. http://www.vbsedit.com/html/6f28899c-d653-4555-8a59-49640b0e32ea.asp
  9. /superuser/62525/run-a-batch-file-in-a-completely-hidden-way
  10. VBscript üzerinde argüman olarak alınan Batch komut dosyası nasıl çalıştırılır?
  11. Bir VBScript'e (cscript ile başlatılan vbs dosyası) argüman iletebilir miyim?

-1
@echo off
C:
SET mypath=%~dp0
c:\cygwin\bin\bash -c "cd '%mypath%'; export CHERE_INVOKING=1; exec /bin/bash --login -i"

Yukarıdaki komutları bir metin dosyasına kopyalayın ve "ilgilenilen klasörünüzden" herhangi birine .bat olarak kaydedin. Cygwin'i "ilgilenilen klasörünüzde" açmalıdır.


-1

@LindseyD cevabına dayanarak mevcut dizinde cygwin'i açan basit bir BAT dosyası oluşturdum, faydalı olabilir (benim için). PATH'de cygwin'in bin dizinine sahip olduğunuzu varsayarsak.

FOR /F %%x IN ('sh -c pwd') DO bash -l -i -c 'cd %%x; exec bash'

-1

Neden bu kadar zaman harcamak zorunda kaldım bilmiyorum, ama bu benim için 10, 64 bit kazanmak için çalışıyor:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""

-1

Muhtemelen en basit olanı:

1) foo.reg dosyası oluşturun

2) İçerik ekleyin:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\background\shell\open_mintty]
@="open mintty"

[HKEY_CLASSES_ROOT\Directory\background\shell\open_mintty\command]
@="cmd /C mintty"

3) foo.reg dosyasını yürütün

Şimdi herhangi bir klasöre sağ tıklayın, tıklayın open minttyve o klasörde nane doğacak.


-2

Aşağıdaki gibi yapmak en iyisi:

HKEY_CLASSES_ROOT\Directory\shell\BashHere
Enter Data: Bash Here

HKEY_CLASSES_ROOT\Directory\shell\BashHere\command
Enter Data: 

cmd.exe /c C:\cygwin\bin\bash.exe --login -c "cd '%1'; exec /bin/bash"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.