Cuối cùng, một câu trả lời độc lập với chính Cygwin.
Điều này sử dụng thực tế là, nếu tôi đang ở trong thư mục C:\\Coolvà tôi gọi lệnh C:\\Cygwin\\bin\\mintty.exe, minttysẽ tự động mở trên thư mục hiện tại, tức là , C:\\Cool.
Trước tiên, bạn sẽ cần tạo tệp C:\\Cygwin\\silent_run.vbsvới nội dung sau:
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
Tiếp theo, để cài đặt câu trả lời này, bạn sẽ sử dụng tệp Windows Registry. Đối với điều đó, chỉ cần đặt nội dung của tệp sau vào một tệp có tênC:\\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"
Bây giờ, Sửa tất cả các đường dẫn được mã hóa cứng, nghĩa là C:\\Cygwinđến vị trí thực tế nơi cài đặt Cygwin của bạn được bật.
Sau đó, chỉ cần mở tệp C:\\Cygwin\\AddMinttyToContextMenu.regđể cài đặt các mục đăng ký mới của bạn và bạn đã hoàn tất.
Tệp C:\\Cygwin\\AddMinttyToContextMenu.reghoạt động bằng cách mở đầu tiên a cmd.exe, thay đổi thư mục nơi bạn đang ở, sau đó, gọi C:\\Cygwin\\silent_run.vbsđể mở C:\\Cygwin\\bin\\mintty.exethiết bị đầu cuối với các tùy chọn dòng lệnh -w max, nghĩa là để mở tối đa hóa nó.
Kịch bản C:\\Cygwin\\silent_run.vbsđược yêu cầu để mở C:\\Cygwin\\bin\\mintty.exethiết bị đầu cuối mà không giữ đầu tiên cmd.exechúng tôi mở, mở.
Mục nhập đầu tiên C:\\Cygwin\\AddMinttyToContextMenu.regkhông sử dụng C:\\Cygwin\\silent_run.vbsvì theo mặc định, các HKEY_CLASSES_ROOT\Directory\Background\shellkhóa đã được mở trong thư mục hiện tại, sau đó, chúng ta chỉ cần gọi C:\\Cygwin\\bin\\mintty.exetrực tiếp để làm cho nó hoạt động ra khỏi hộp.
Người giới thiệu:
- Cách thêm mục menu ngữ cảnh vào Windows Explorer cho các thư mục
- VBScript truyền đối số dòng lệnh trong đường dẫn có dấu cách
- Làm cách nào để truyền một lệnh có khoảng trắng và dấu ngoặc kép dưới dạng một tham số cho CScript?
- gọi vbscript từ một tệp vbscript khác truyền đối số
- https://ss64.com/vb/syntax-args.html
- Kiểm tra xem chuỗi có chứa không gian không
- Chạy dòng lệnh âm thầm với VbScript và nhận đầu ra?
- http://www.vbsedit.com/html/6f28899c-d653-4555-8a59-49640b0e32ea.asp
- /superuser/62525/run-a-batch-file-in-a-completely-hidden-way
- Làm cách nào để chạy tập lệnh Batch nhận được làm đối số trên VBscript?
- Tôi có thể chuyển một đối số cho VBScript (tệp vbs được khởi chạy với cscript) không?