Sayangnya, metode program batch afrazier tidak akan berfungsi; Windows tidak menangani membuka banyak file seperti itu. Ketika Anda mencoba untuk membuka banyak file dengan suatu program, Windows tidak membuka satu instance dari program dan meneruskan file sebagai beberapa argumen untuk satu contoh itu. Sebagai gantinya, Windows membuka banyak instance dari program (sebanyak jumlah sebanyak file), meneruskan satu file ke setiap instance. Akan lebih baik jika Anda hanya bisa menggunakan% * dan meneruskan banyak file ke .bat tunggal, dan minta .bat menjalankan loop memproses setiap file satu per satu, tetapi sayangnya Anda hanya dapat menggunakan% 1 saat mengatur ini jenis tindakan dalam registri.
Seseorang dengan beberapa waktu di tangan mereka dapat menulis sebuah program yang menggunakan objek mutex untuk memeriksa apakah ada instance lain yang sudah berjalan, dan jika ada, untuk meneruskan file ke instance itu dan kemudian tutup, dimana instance aslinya akan meletakkan file itu dalam antrian dan sampai setelah selesai memproses file sendiri. sebuah batch bisa melakukan trik menggunakan tasklist
dan find
juga, tapi itu tidak sebagus solusi seperti mutex.
Bagaimanapun, coba ini untuk nilai registri perintah ekstrak Anda untuk mendapatkan nama folder yang tepat:
"\path\to\7z.exe" x "%1" -o* -aou
Ini akan membuat folder baru di direktori yang sama dengan arsip sumber dengan nama yang sama dengan arsip sumber (tanpa ekstensi file).
Juga, saya menambahkan -aou
saklar untuk secara otomatis menghindari konflik nama file (7z akan menambahkan nomor ke akhir file, bukan meminta Anda apakah Anda ingin menimpa atau apa pun).
-o*
, tetapi hanya jika ada lebih dari satu file dalam arsip? Seperti dalam, dapatkah saya membuatnya mengekstrak ke direktori saat ini jika hanya ada satu file atau folder dalam arsip?"C:\Program Files\7-Zip\7zFM.exe" x "%1" -o* -aou
begitu mengubah 7zFM menjadi hanya 7z"C:\Program Files\7-Zip\7z.exe" x "%1" -o* -aou
Utas ini menjadi sedikit membingungkan karena bertentangan dengan jawaban (butuh beberapa waktu untuk mencari tahu solusi mana yang tepat) jadi saya pikir mungkin ide yang bagus untuk merangkum hasil dari posting afrazier dan Justin Roettger yang dikombinasi dengan jawaban saya sendiri. pengalaman:
HKEY_CLASSES_ROOT\7-Zip.7z
Shell
sub-kunci(Default)
nilai ke stringextract
extract
(Default)
nilai untukextract
kunciExtract to Folder
extract
namacommand
(Default)
nilaicommand
kunci ke:(Anda mungkin harus menyesuaikan ini agar sesuai dengan jalur pemasangan 7-Zip Anda)
Alih-alih 7z dengan -Anda seperti Justin Roettger menyarankan saya akhirnya menggunakan 7zG, karena dengan cara ini Anda dapat memilih untuk menimpa jika Anda suka seperti mengekstraksi dengan menu konteks normal.
Itu dia! File 7z sekarang diekstraksi ke folder dengan nama mereka sendiri dengan klik dua kali. Untuk ekstensi lain seperti .rar dan .zip Anda harus mengulangi langkah-langkah ini untuk tombol yang sesuai. (yaitu HKEY_CLASSES_ROOT \ 7-Zip.rar dan HKEY_CLASSES_ROOT \ 7-Zip.zip dan sebagainya)
Oh dan untuk memperjelas: Ini berfungsi dengan beberapa file yang dipilih juga. Tidak perlu file batch.
sumber
C:\Program Files\7-Zip\7zG.exe x "%1" -o*
dan voila.Tools -> Options...
menu).Cara mudah
Instal ExtractNow . Anda dapat mengkonfigurasinya untuk melakukan apa yang Anda inginkan.
Cara yang sulit
Modifikasi registri manual sebagai berikut ...
Mulai
regedit
sebagai administratorBuka
HKCR\.7z
dan lihat(Default)
nilainya. Perhatikan apa itu (dalam kasus saya, sebagai pengguna PowerArchiver, ituPASZIP
)Pergi ke kunci registri di
HKCR
beri nama itu. (dalam kasus sayaHKCR\PASZIP
)Di bawah kunci itu, perluas
Shell
sub-kunciTetapkan
(Default)
nilai ke stringextract
Buat sub-kunci baru dengan nama
extract
Tetapkan
(Default)
nilai untukextract
kunciExtract to Folder
Buat sub-kunci baru dengan
extract
namacommand
Setel
(Default)
nilaicommand
kunci ke(Anda mungkin harus menyesuaikan jalurnya)
Terima kasih kepada Justin Roettger karena menunjukkan variabel nama yang benar yang diperlukan untuk ini.
Seharusnya begitu. Sekarang 7z file diekstraksi ke folder dengan nama mereka sendiri dengan klik dua kali. Untuk ekstensi lain seperti .rar dan .zip Anda harus mengulangi langkah ini untuk tombol yang sesuai.
Jika Anda hanya ingin membuat perubahan pada akun pengguna Anda alih-alih seluruh sistem, modifikasi
HKCU\Software\Classes
bukanHKCR
.HKCR
adalah kunci virtual yang merupakan gabungan dariHKLM\Software\Classes
dan diHKCU\Software\Classes
mana data dalam akun Anda (HKCU) menimpa data seluruh sistem (HKLM). Biasanya menjalankan regedit sebagai Administrator berarti memodifikasi HKCR mengubah data seluruh sistem di HKLM.Mengekstrak banyak file
Tentu saja, ini tidak akan berhasil jika Anda memiliki beberapa file yang dipilih. Jika Anda ingin itu berfungsi, Anda perlu membuat file batch berikut:
Sekarang, ikuti instruksi di atas. Pada langkah terakhir, atur
(Default)
nilaicommand
kunciC:\Path\To\File.bat %*
Semua modifikasi registri tidak teruji dari memori, tetapi harus benar.
sumber
%~dpn1
bekerja di asosiasi file? (Tidak di Windows XP. Selain itu, Anda lupax
ekstensi.)x
nama folder keluaran. Adapun itu berfungsi ... Itu pertanyaan yang bagus. Saya akan mengedit ke alamat ..."C:\Program Files\7-Zip\7z.exe" x "%1" -o"%~dpn1"
saya tidak mendapatkan manfaat dari menjalankancmd.exe
yang bisa saya katakan, dan 7-zip terbuka standar tidak repot dengan itu. Namun, ini hanya membuka ritsleting ke%~dpn1
dalam folder yang sama dengan file zip. Subtitle tersebut\"%1.d\"
memberikan subdirektori \ filename.zip.d \ dalam folder yang sama dengan file zip, sehingga lebih dekat, tetapi tidak menghilangkan ekstensi. Saya sudah mencoba hibrida keduanya, tidak berhasil. Ada saran lain?Inilah skrip PowerShell yang saya tulis berdasarkan jawaban @ haiggoh. Sebelum Anda menjalankannya, Anda perlu membuka 7-zip, buka Tools-> Options dan kaitkan 7-zip dengan ekstensi file yang diinginkan. Setelah itu, jalankan skrip PowerShell berikut (dengan hak admin):
Tentu saja, pastikan
$7zInstallationFolder
variabel itu berisi jalur yang benar ke instalasi 7-zip Anda.sumber
Lewati parameter seperti ini:
Saya ingat pernah mendengar keluhan tentang Windows 7 yang tidak memungkinkan untuk langsung mengedit tindakan file. Saya tidak tahu apakah ini benar atau tidak ... tetapi jika benar, simpan yang berikut sebagai
*.reg
file dan impor.sumber
Berikut adalah file .reg yang mengonfigurasi Ekstrak ke folder sebagai perilaku default saat mengklik dua kali file dengan salah satu ekstensi berikut - 7z / CAB / GZ / GZIP / RAR / TAR / ZIP. Anda bisa melakukannya untuk ekstensi file lainnya menggunakan pendekatan yang sama. Saya lebih suka perilaku standar Windows untuk pemasangan ISO / VHD, jadi saya tidak mengubahnya, dan 7-Zip mendukung banyak jenis file lain yang tidak biasa saya temui jadi saya tidak mengubahnya untuk itu.
Anda dapat mengembalikan ini dengan masuk ke 7-Zip File Manager, Tools, Options, dan mengubah asosiasi file yang diinginkan.
Saya menguji pada Windows 10 x64 / 7-Zip 15.12 x64. Karena menggunakan C: \ Program Files untuk jalur ke 7-Zip, Anda pasti perlu x64 Windows + x64 7-Zip, tapi saya hanya menguji pada Windows 10.
Anda akan memiliki opsi klik kanan yang sama seperti sebelumnya, ini hanya mengubah apa yang terjadi ketika Anda mengklik dua kali, dan hanya untuk tujuh jenis file (sekali lagi, Anda bisa melakukan ini untuk jenis file lain menggunakan pendekatan yang sama).
Jika sudah ada folder dengan nama itu, itu akan memberi Anda 7-Zip prompt yang Anda dapatkan secara normal, dengan opsi untuk Ya / Ya untuk Semua / Ubah Nama Otomatis / Tidak / Tidak untuk Semua.
sumber