Windows: Cara menambahkan aksi batch-script ke menu Klik Kanan


18

Saya punya beberapa program yang membuat file temp atau file cadangan atau file serupa yang tidak penting. Misalnya, GVim untuk Windows secara default membuat file cadangan di filename.txt~.

Terkadang saya perlu membersihkan direktori dan menghapus semua file ini. Saya telah membuat file .bat sederhana untuk ini. Namun, sulit untuk memulai CMD, menavigasi ke folder, menjalankan skrip. Terutama karena ini adalah sebuah script yang saya ingin menjalankan sering di berbagai folder. Dan saya tidak ingin menyalin skrip ke beberapa folder, karena ini akan menjadi mimpi buruk pemeliharaan.

Jadi, saya berpikir, bahwa solusi terbaik adalah menambahkan item menu Klik Kanan yang memungkinkan saya untuk menjalankan skrip. Sehingga saya bisa klik kanan pada folder di Explorer dan klik Cleanup dan kemudian menjalankan skrip saya di folder ini.

Jadi pertanyaan saya adalah: Bagaimana cara menambahkan tindakan menu klik kanan yang menjalankan skrip kumpulan khusus?

Jawaban:


18

Saya telah mencoba pada Windows XP SP3 dengan kunci .reg ini. Tidak memiliki Windows 7 saat ini untuk mengujinya dengan benar tetapi harus hampir sama.

  1. Buka notepad dan paste kode dari bawah.
  2. Edit sesuai kebutuhan Anda.
  3. Simpan sebagai MyScript1.reg
  4. Klik dua kali untuk mengimpor dalam registri.
  5. Uji dengan klik kanan pada direktori mana saja di Explorer
Windows Registry Editor Versi 5.00

[HKEY_CLASSES_ROOT \ Directory \ shell \ MyScript1]
@ = "Jalankan MyScript1"

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

4
Saya sudah sedikit mengedit jawaban Anda. "Windows Registry Editor Versi 5.00" adalah 'header' wajib untuk file .reg. Kalau tidak, Windows akan menolak untuk menyuntikkan konten ke dalam registri.
extremeko

+1 untuk menunjukkan yang keluar. Saya benar-benar lupa tentang hal itu ketika kode c / p.
Robert Schmidt

1
Saya mencoba ini. Sekarang saya bisa klik kanan langsung pada folder, tetapi tidak berfungsi jika saya klik kanan di dalam folder. Sebenarnya itulah yang saya inginkan. Bagaimana cara melakukannya?
ervingsb

1
Itu pertanyaan yang berbeda dari "Jadi saya bisa klik kanan pada folder di Explorer dan klik Bersihkan lalu jalankan skrip saya di folder ini."
Robert Schmidt

Ya, itu sebabnya saya mengklarifikasi. Maaf karena tidak tepat. Saya benar-benar menganggapnya sebagai mengklik kanan pada folder. Ini bukan ikon folder, tetapi di dalam folder.
ervingsb

18

Sebenarnya, jawaban saat ini tidak ketinggalan zaman. Saya mencoba hal yang sama persis pada Windows 10 dan dapat menambahkan Run Batch scriptke menu konteks semua folder di Windows.

Ini adalah isi skrip kumpulan saya (tidak akan berfungsi dengan jalur UNC ):

@ECHO MATI
ECHO% ~ n0 dipanggil dengan argumen berikut:
SET args =% *
JIKA TIDAK DITETAPKAN args GOTO END
ECHO% *
:AKHIR
PAUSE

Perubahan registri yang saya buat dapat direplikasi dengan file REG ini:

Windows Registry Editor Versi 5.00

[HKEY_CLASSES_ROOT \ Directory \ shell \ Jalankan skrip batch]
@ = "& Jalankan skrip Batch"

[HKEY_CLASSES_ROOT \ Directory \ shell \ Jalankan skrip batch \ perintah]
@ = "\" H: \\ BATCH_FILE_PATH \\ context-batch.bat \ "\"% 1 \ ""

Ini hanya menambahkan item menu konteks untuk semua direktori / folder di Windows. Jika Anda ingin ditampilkan untuk setiap file sebagai gantinya, Anda dapat menggunakan ini:

Windows Registry Editor Versi 5.00

[HKEY_CLASSES_ROOT \ * \ shell \ Run script]
@ = "Jalankan & skrip"

[HKEY_CLASSES_ROOT \ * \ shell \ Run script \ command]
@ = "\" H: \\ BATCH_FILE_PATH \\ context-batch.bat \ "\"% 1 \ ""

Atau, Anda dapat menambahkan skrip batch ke Send Todaftar item dengan membuat pintasan ke skrip batch Anda dan menempatkannya di bawah %APPDATA%\Microsoft\Windows\SendTo(atau masukkan shell:sendtoke bilah alamat)

Jika Anda ingin skrip Anda ditampilkan di menu konteks yang muncul ketika Anda mengklik kanan pada ruang kosong dalam direktori (latar belakang direktori?) Anda dapat menggunakan file REG berikut:

Windows Registry Editor Versi 5.00

[HKEY_CLASSES_ROOT \ Direktori \ Latar Belakang \ shell \ Jalankan skrip batch]
@ = "& Jalankan skrip Batch"
"Ikon" = "% SystemRoot% \\ System32 \\ shell32.dll, 71"

[HKEY_CLASSES_ROOT \ Direktori \ Latar Belakang \ shell \ Jalankan skrip batch \ perintah]
@ = "H: \\ BATCH_FILE_PATH \\ context-batch.bat \"% V \ ""

Anda tidak perlu "Icon"="%SystemRoot%\\System32\\shell32.dll,71"saluran telepon. Itu hanya menambahkan ikon ke menu konteks Anda yang terlihat seperti ini:

ikon menu konteks windows


Terima kasih! Ngomong-ngomong, apakah Anda tahu cara menampilkan menu konteks ini ketika saya mengklik kanan ruang kosong folder saat ini (tidak hanya ketika saya mengklik folder itu sendiri)?
Tom Brito

@ TomBrito Silakan lihat hasil edit terbaru saya.
Vinayak

@ Tom Brito: Memodifikasi menu konteks ruang kosong tampaknya dijawab di sini: stackoverflow.com/questions/4902041/…
kreemoweet

@kreemoweet Terima kasih telah menautkan itu! Namun, saya mengetahuinya dengan menganalisis Editor Menu Konteks .
Vinayak

@kreemoweet Saya mengubah string path untuk Directory\Backgrounddimasukkan %Vkarena akan melewati direktori saat ini ke skrip. Namun, saya tidak begitu yakin apa artinya. %Wtampaknya bekerja dengan baik.
Vinayak

6

Saya akan merekomendasikan Editor Program Default untuk tugas ini. Keduanya lebih ramah pengguna dan bisa dibilang lebih aman daripada mengedit registri secara langsung.

Pilih Menu Konteks masukkan deskripsi gambar di sini

Pilih ekstensi yang ingin Anda ubah. masukkan deskripsi gambar di sini

Pilih Tambah ... masukkan deskripsi gambar di sini

Beri Perintah Anda Judul, telusuri ke file batch dan secara opsional pilih ikon untuk mewakili perintah Anda. masukkan deskripsi gambar di sini

Simpan menu konteks ke registri dan Anda siap melakukannya.


Saya ingin menjalankan batch pada folder, bukan tipe file. Sepertinya itu tidak membantu ...
Tom Brito

Ini membantu saya, terima kasih sudah berbagi.
Daniel Kaplan

Program yang bagus. Terima kasih.
Laurie Stearn

0

Solusi alternatif yang saya gunakan pada Windows 10 adalah menambahkan skrip ke salah satu folder dalam path variabel, dan kemudian ketika Anda berada dalam urutan penggunaan explorer:

  • ctrl + L - untuk mulai menulis di bilah pencarian

  • ketik: cmd, lalu tekan Enter - untuk memulai cmd di direktori saat ini

  • jalankan skrip Anda, dengan mengetikkan nama file-nya


0

@Vinayak,

Jika menggunakan opsi "kirim ke", Anda mungkin perlu menambahkan baris cd /d %1ke awal perintah batch sehingga berjalan di bawah jalur target.

file batch saya saat ini terlihat seperti ini:

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

Terima kasih atas bantuannya, saya kebetulan menemukan ini melalui google pada waktu yang tepat :)


Ini benar-benar komentar dan bukan jawaban untuk pertanyaan awal. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka - Anda selalu dapat mengomentari posting Anda sendiri, dan setelah Anda memiliki reputasi yang cukup Anda akan dapat mengomentari posting apa pun . Harap baca Mengapa saya perlu 50 reputasi untuk berkomentar? Apa yang bisa saya lakukan?
DavidPostill

@DavidPostill yah, dia tidak memiliki posting sendiri di utas ini untuk mengomentari, sebelum memposting jawabannya .. Dan (seandainya dia ingin mengatakan sesuatu yang layak menjadi komentar), apa yang bisa dia lakukan untuk berkomentar? tidak ada yang mungkin.
barlop

@barlop Answers bukan pengganti komentar seperti yang Anda ketahui. Salah satu alternatif adalah dengan mengusulkan edit ke jawaban yang lain ... tetapi itu kemungkinan akan ditolak.
DavidPostill

@ DavidPostill poin saya hanyalah bahwa ia tidak memiliki pilihan. dan Anda tidak begitu jelas tentang fakta itu di komentar asli Anda. Sebenarnya komentar asli Anda menunjukkan bahwa ia memiliki beberapa pilihan, tetapi ia tidak.
barlop

@barlop Ah. BAIK. Saya akan memikirkan beberapa kata yang lebih baik ...
DavidPostill
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.