Windows: Cách thêm hành động tập lệnh bó vào menu Nhấp chuột phải


18

Tôi có một vài chương trình tạo tệp tạm thời hoặc tệp sao lưu hoặc các tệp tương tự không quan trọng. Ví dụ: GVim cho Windows theo mặc định sẽ tạo một tệp sao lưu filename.txt~.

Đôi khi tôi cần dọn sạch một thư mục và xóa tất cả các tệp này. Tôi đã tạo một tập tin .bat đơn giản cho việc này. Tuy nhiên, thật khó khăn khi phải khởi động CMD, điều hướng đến thư mục, chạy tập lệnh. Đặc biệt vì đây là tập lệnh mà tôi muốn chạy thường xuyên trên các thư mục khác nhau. Và tôi không muốn sao chép tập lệnh vào nhiều thư mục, vì đây sẽ là một cơn ác mộng bảo trì.

Vì vậy, tôi đã nghĩ rằng, giải pháp tốt nhất sẽ là thêm một mục menu Nhấp chuột phải cho phép tôi chạy tập lệnh. Để tôi có thể nhấp chuột phải vào một thư mục trong Explorer và nhấp vào Dọn dẹp và sau đó tập lệnh của tôi chạy trên thư mục này.

Vì vậy, câu hỏi của tôi là: Làm thế nào để tôi thêm một hành động menu chuột phải chạy một tập lệnh bó tùy chỉnh?

Câu trả lời:


18

Tôi đã thử trên Windows XP SP3 với khóa .reg này. Không có Windows 7 tại thời điểm này để kiểm tra đúng cách nhưng nó sẽ gần như giống nhau.

  1. Mở notepad và dán mã từ bên dưới.
  2. Chỉnh sửa theo nhu cầu của bạn.
  3. Lưu dưới dạng MyScript1.reg
  4. Nhấp đúp chuột để nhập trong sổ đăng ký.
  5. Kiểm tra bằng cách nhấp chuột phải vào bất kỳ thư mục nào trong Explorer
Windows Registry Editor Phiên bản 5,00

[HKEY_CLASSES_ROOT \ Directory \ shell \ MyScript1]
@ = "Thực thi MyScript1"

[HKEY_CLASSES_ROOT \ Directory \ shell \ MyScript1 \ lệnh]
@ = "\" C: \\ MyScriptsDirectory \\ MyScript1Directory \\ MyScript1.bat \ "\"% 1 \ ""

4
Tôi đã chỉnh sửa câu trả lời của bạn một chút. "Windows Registry Editor Phiên bản 5,00" là 'tiêu đề' bắt buộc cho các tệp .reg. Nếu không, Windows sẽ từ chối đưa nội dung vào registry.
extremko

+1 để chỉ ra cái đó. Tôi hoàn toàn quên mất điều đó khi mã c / p.
Robert Schmidt

1
Tôi đã thử điều này. Bây giờ tôi có thể nhấp chuột phải vào một thư mục, nhưng nó không hoạt động nếu tôi nhấp chuột phải vào một thư mục. Đó thực sự là những gì tôi muốn. Làm thế nào để làm điều đó?
ervingsb

1
Đó là một câu hỏi khác với câu hỏi "Để tôi có thể nhấp chuột phải vào thư mục trong Explorer và nhấp vào Dọn dẹp và sau đó tập lệnh của tôi chạy trên thư mục này."
Robert Schmidt

Vâng, đó là lý do tại sao tôi làm rõ nó. Xin lỗi vì không chính xác. Tôi thực sự nghĩ về nó như nhấp chuột phải vào thư mục. Nó không chỉ là biểu tượng thư mục, mà là bên trong thư mục.
ervingsb

18

Trên thực tế, câu trả lời hiện tại không lỗi thời. Tôi đã thử chính xác điều tương tự trên Windows 10 và có thể thêm Run Batch scriptvào menu ngữ cảnh của tất cả các thư mục trong Windows.

Đây là nội dung của tập lệnh bó của tôi (sẽ không hoạt động với các đường dẫn UNC ):

@ECHO TẮT
ECHO% ~ n0 được gọi với các đối số sau:
SET lập luận =% *
NẾU KHÔNG XÁC ĐỊNH lập luận GOTO END
ECHO% *
:KẾT THÚC
TẠM NGỪNG

Các thay đổi đăng ký tôi đã thực hiện có thể được sao chép bằng tệp REG này:

Windows Registry Editor Phiên bản 5,00

[HKEY_CLASSES_ROOT \ Directory \ shell \ Chạy tập lệnh hàng loạt]
@ = "& Chạy tập lệnh hàng loạt"

[HKEY_CLASSES_ROOT \ Directory \ shell \ Chạy tập lệnh Batch \ lệnh]
@ = "\" H: \\ BATCH_FILE_PATH \\ bối cảnh-đợt.bat \ "\"% 1 \ ""

Điều này chỉ thêm một mục menu ngữ cảnh cho tất cả các thư mục / thư mục trong Windows. Nếu bạn muốn nó hiển thị cho từng tệp và thay vào đó, bạn có thể sử dụng:

Windows Registry Editor Phiên bản 5,00

[HKEY_CLASSES_ROOT \ * \ shell \ Chạy tập lệnh]
@ = "Chạy & tập lệnh"

[HKEY_CLASSES_ROOT \ * \ shell \ Chạy script \ lệnh]
@ = "\" H: \\ BATCH_FILE_PATH \\ bối cảnh-đợt.bat \ "\"% 1 \ ""

Ngoài ra, bạn có thể thêm tập lệnh bó của mình vào Send Todanh sách mục bằng cách tạo lối tắt cho tập lệnh bó và đặt nó bên dưới %APPDATA%\Microsoft\Windows\SendTo(hoặc nhập shell:sendtovào thanh địa chỉ)

Nếu bạn muốn tập lệnh của mình hiển thị trong menu ngữ cảnh xuất hiện khi bạn nhấp chuột phải vào khoảng trống trong thư mục (nền thư mục?), Bạn có thể sử dụng tệp REG sau:

Windows Registry Editor Phiên bản 5,00

[HKEY_CLASSES_ROOT \ Directory \ Bối cảnh \ shell \ Chạy tập lệnh hàng loạt]
@ = "& Chạy tập lệnh hàng loạt"
"Biểu tượng" = "% SystemRoot% \\ System32 \\ shell32.dll, 71"

[HKEY_CLASSES_ROOT \ Directory \ Background \ shell \ Run Batch script \ lệnh]
@ = "H: \\ BATCH_FILE_PATH \\ bối cảnh-batch.bat \"% V \ ""

Bạn không cần "Icon"="%SystemRoot%\\System32\\shell32.dll,71"đường dây. Nó chỉ đơn giản là thêm một biểu tượng vào menu ngữ cảnh của bạn trông như thế này:

cửa sổ biểu tượng menu ngữ cảnh


Cảm ơn! Nhân tiện, bạn có biết làm thế nào để hiển thị menu ngữ cảnh này khi tôi nhấp chuột phải vào không gian trống của thư mục hiện tại (không chỉ khi tôi nhấp vào chính thư mục đó)?
Tom Brito

@TomBrito Vui lòng xem chỉnh sửa mới nhất của tôi.
Vinayak

@Tom Brito: Sửa đổi menu ngữ cảnh không gian trống dường như được trả lời ở đây: stackoverflow.com/questions/4902041/
Kẻ

@kreemoweet Cảm ơn bạn đã liên kết đó! Tuy nhiên, tôi phát hiện ra điều này bằng cách phân tích Trình biên tập trình đơn ngữ cảnh .
Vinayak

@kreemoweet Tôi đã thay đổi chuỗi đường dẫn Directory\Backgroundđể đưa %Vvào vì nó sẽ chuyển thư mục hiện tại vào tập lệnh. Tuy nhiên, tôi không thực sự chắc chắn về ý nghĩa của nó. %Wdường như cũng làm việc
Vinayak

6

Tôi muốn giới thiệu Trình chỉnh sửa chương trình mặc định cho nhiệm vụ này. Nó thân thiện với người dùng hơn và an toàn hơn nhiều so với chỉnh sửa registry trực tiếp.

Chọn Menu ngữ cảnh nhập mô tả hình ảnh ở đây

Chọn phần mở rộng bạn muốn thay đổi. nhập mô tả hình ảnh ở đây

Chọn Thêm ... nhập mô tả hình ảnh ở đây

Cung cấp cho lệnh của bạn một Tiêu đề, duyệt đến tệp bó và tùy chọn chọn một biểu tượng để thể hiện lệnh của bạn. nhập mô tả hình ảnh ở đây

Lưu menu ngữ cảnh vào sổ đăng ký và bạn tốt để đi.


Tôi muốn chạy lô trên các thư mục, không phải loại tệp. Có vẻ như nó không giúp được gì ...
Tom Brito

Điều này đã giúp tôi, cảm ơn vì đã chia sẻ.
Daniel Kaplan

Chương trình tốt đẹp. Cảm ơn.
Laurie Stearn

0

Giải pháp thay thế mà tôi sử dụng trên Windows 10 là thêm tập lệnh vào một trong các thư mục trong biến đường dẫn và sau đó khi bạn ở trong trình thám hiểm sử dụng trình tự:

  • ctrl + L - để bắt đầu viết trong thanh tìm kiếm

  • gõ: cmd, sau đó nhấn Enter - để bắt đầu cmd trong thư mục hiện tại

  • chạy tập lệnh của bạn, bằng cách gõ tên tệp của nó


0

@Vinayak,

Nếu sử dụng tùy chọn "gửi đến", có lẽ bạn sẽ cần thêm dòng cd /d %1vào đầu lệnh bó để nó chạy theo đường dẫn đích.

tập tin lô hiện tại của tôi trông như thế này:

@echo off
cd /d %1    
del *.txt
pause

Cảm ơn sự giúp đỡ, tôi tình cờ phát hiện ra điều này qua google vào đúng thời điểm :)


Đây thực sự là một bình luận và không phải là một câu trả lời cho câu hỏi ban đầu. Để phê bình hoặc yêu cầu làm rõ từ một tác giả, hãy để lại nhận xét bên dưới bài đăng của họ - bạn luôn có thể nhận xét về bài đăng của riêng bạn và khi bạn có đủ danh tiếng, bạn sẽ có thể nhận xét về bất kỳ bài đăng nào . Xin vui lòng đọc tại sao tôi cần 50 danh tiếng để bình luận? Tôi có thể làm gì thay thế?
DavidPostill

@DavidPostill tốt, anh ấy đã không có một bài đăng của riêng mình trong chủ đề này để bình luận, trước khi đăng câu trả lời của anh ấy .. Và (giả sử anh ấy muốn nói điều gì đó xứng đáng là một bình luận), anh ấy có thể làm gì để bình luận? không có gì có lẽ
barlop

@barlop Câu trả lời không thay thế cho ý kiến ​​như bạn cũng biết. Một cách khác là đề xuất một chỉnh sửa cho câu trả lời khác ... nhưng điều đó có thể sẽ bị từ chối.
DavidPostill

@DavidPostill quan điểm của tôi chỉ đơn thuần là sau đó anh ta không có lựa chọn nào khác. và bạn không thực sự rõ ràng về thực tế đó trong nhận xét ban đầu của bạn. Trong thực tế, nhận xét ban đầu của bạn là gợi ý về ý tưởng rằng anh ta có một số tùy chọn nhưng anh ta không có.
barlop

@barlop À. ĐỒNG Ý. Tôi sẽ suy nghĩ về một số từ ngữ tốt hơn ...
DavidPostill
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.