Saya memiliki program yang terbuka dengan pintasan tertentu, tetapi pintasan tersebut sepertinya mengirim parameter ke aplikasi. Jika saya langsung pergi ke direktori target dan klik dua kali, itu tidak berfungsi. Namun, jika saya menggunakan baris perintah dan menyampaikan argumen tertentu, aplikasi terbuka dengan benar.
Saya ingin membuka jenis file tertentu menggunakan aplikasi, tetapi aplikasi harus memiliki parameter, atau itu tidak akan berfungsi. Apakah mungkin melakukan hal semacam ini?
Jawaban:
Mengalami masalah yang sama dengan @jtpereyda dan solusi dari @bobbymcr juga tidak bekerja untuk saya. Saya mencoba untuk mendapatkan semua parameter baris perintah yang dilewatkan ke skrip node.js tanpa perlu node.exe pada perintah.
Masalahnya adalah bahwa jika Anda telah menghubungkan program dengan ekstensi melalui
Open With
dialog maka Anda akan membuat asosiasi aplikasi, alih-alih asosiasi ekstensi file, di antara keduanya. Dan asosiasi aplikasi diutamakan.Jika Anda tidak keberatan mengedit registri, Anda dapat memodifikasi
(Default)
kunci di jalur berikut:HKEY_CLASSES_ROOT\Applications\node.exe\shell\open\command
Anda harus mengganti
node.exe
dengan aplikasi yang Anda sesuaikan.Atau Anda dapat menghapus folder aplikasi dari
HKEY_CLASSES_ROOT\Applications
folder sepenuhnya danftype
asosiasi Anda akan mulai berfungsi.Pastikan untuk menggunakan
%*
yang akan melewati argumen baris perintah yang tidak ditentukan atau tidak ada sama sekali. Jika Anda melakukannya,"%2" "%3" "%4" "%5"
Anda akan mendapatkan 5 string string kosong yang dilewatkan ke aplikasi Anda ketika Anda tidak menentukan argumen baris perintah.Akhirnya, jika Anda tidak setuju dengan memodifikasi registri dengan tangan maka Anda dapat menggunakan alat freeware dari Nirsoft - FileTypesManager - http://www.nirsoft.net/utils/file_types_manager.html
Asosiasi file akan muncul di bagian atas daftar, tanpa teks di kolom ekstensi pertama. Cukup cari nama yang dapat dieksekusi dalam daftar dan pilih untuk memodifikasi
command line
bidang untukopen
nama tindakan.Pada windows7, perubahan tercermin segera tanpa reboot atau aplikasi restart. Namun utilitas Nirsoft memiliki fitur untuk "Refresh the Desktop" pada setiap modifikasi, jadi itu membuat saya percaya bahwa mungkin Vista atau versi OS sebelumnya akan menyimpan data. Dalam hal mana utilitas akan menjadi taruhan yang lebih baik, jika tidak, Anda mungkin harus keluar dan masuk untuk melihat perubahannya.
sumber
"C:\Program Files\nodejs\node.exe" "%1"%*
CATATAN:%*
nilainya TIDAK dalam tanda kutip, dan tidak memiliki ruang di antara itu dan tanda kutip ganda sebelumnya.HKEY_CLASSES_ROOT\.ulaw
di regedit untuk berjaga-jaga jika.ulaw
ekstensi file yang saya lakukan prosedur untuk.HKEY_CLASSES_ROOT
artikel. Ini adalah kesalahpahaman yang dapat dimengerti mengingat sebagian besar dokumentasi Microsoft sendiri mendahului pandangan gabungan untuk HKCR yang diperkenalkan sekitar Windows 2000.Anda dapat melakukan ini dengan
assoc
danftype
pada prompt perintah. Buka prompt perintah yang ditinggikan dan coba yang berikut ini:Ini akan mengaitkan
.xyz
ekstensi denganMyProgram.exe
dan akan melewati baris perintah/arg1 /arg2 [filename.xyz]
ke program untuk menjalankannya.sumber
.ulaw
file dengansox
menggunakan argumen yang telah ditentukan sebelumnya. Perhatikan bahwa selain menghapus aplikasi lama, saya juga menghapusHKEY_CLASSES_ROOT\.ulaw
yang menentukan jenis file.assoc
danftype
perintah warisan. Mereka tidak diperbarui untuk ekstensi ke file asosiasi yang ditambahkan di Windows XP, 7, dan 8. Mereka hanya memodifikasi asosiasi file dan kunci ProgId di bawah kunci sistem "HKLM \ Software \ Classes". Mereka tidak membaca atau mengubah pengaturan HKCU per pengguna, yang lebih diutamakan, atau subkunci yang lebih baru seperti "Aplikasi" dan "SystemFileAssociations", atau kunci kemampuan per aplikasi dari "RegisteredApplications". Mereka juga tidak membaca atau memodifikasi pilihan pengguna di bawah "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts".Orang yang mengajukan pertanyaan melaporkan jawaban Terbaik tidak benar-benar berfungsi.
Saya sudah menemukan jawabannya untuk XP, yang mungkin berlaku untuk OS yang lebih baru.
Pada prompt cmd Anda memerlukan dua perintah:
assoc
,ftype
.Keduanya dapat menunjukkan apa yang terkait dan kemudian mengedit asosiasi tetapi ada twist, instruksi MS tampaknya salah / tidak lengkap. Saya diberitahu tentang ini dengan memperhatikan gaya asosiasi tidak berdokumen oleh aplikasi veteran yang dikenal, mengapa?
Contoh ini memungkinkan banyak argumen untuk diteruskan ke program asosiasi.
Bukan salah ketik itu
"%1" "%*"
. Bintang persen tidak akan berfungsi tanpa persen sebelumnya 1 .Dan itu langsung ditayangkan, tidak ada persyaratan untuk logout dll.
Dilakukan dengan benar akan melewati 3 ke arg []
Belum melakukannya tetapi sepertinya tanda kutip luar berikut ini akan lewat -m jika program membutuhkan flag.
sumber
%1 %*
tanpa tanda kutip !!! sialan windowsSaya memiliki masalah yang sama dengan PSP versi lama dengan Windows7
Solusi ini (ubah baris perintah shell \ open \ di Registry) berfungsi tetapi TETAPI harus memiliki sintaks "C: \ MyFolderName \ PSP.EXE"% 1 TANPA KUTIP SELURUH% 1 jika tidak ini akan ditafsirkan sebagai konstanta
sumber
Bukan solusi terbaik tetapi yang paling mudah adalah menggunakan file batch.
Buat file kelelawar seperti itu dan tetapkan program default Anda untuk itu untuk ekstensi file Anda. Dan ya, kutipan kosong setelah mulai diperlukan:
{nama aplikasi} .bat
Contoh:
BCompareEdit.bat
sumber
Berikut ini adalah ekstensi yang tampaknya melakukan apa yang Anda inginkan. Saya belum pernah menggunakannya sebelumnya, tetapi sepertinya mendapatkan ulasan yang baik. tinggalkan komentar jika ada masalah.
sumber
Buat pintasan Windows dan gunakan templat berikut:
sumber
xyz.jpg
?