เชื่อมโยงนามสกุลไฟล์แบบเป็นโปรแกรมกับแอปพลิเคชันบน Windows


43

ฉันเพิ่งติดตั้ง Windows ใหม่และในการตั้งค่าสภาพแวดล้อมของฉันฉันสังเกตเห็นว่าการเชื่อมโยงทั้งหมดของฉันสำหรับภาษาการเขียนโปรแกรมต่างๆที่ฉันแก้ไขใน Notepad ++ หายไป (ตามธรรมชาติ)

ฉันคิดว่าในอนาคตมันจะไม่เป็นการดีถ้ามีชุดแบตช์บางชนิดที่สามารถเชื่อมโยงส่วนขยายของไฟล์ที่เลือกกับ N ++ ที่คลิกปุ่มเพียงปุ่มเดียวโดยอัตโนมัติแทนที่จะต้องรอจนกว่าจะเจอนามสกุลเหล่านี้ทั้งหมด ผ่านการควบคุมการเดินเรือไปยัง N ++ exe เป็นต้น

ฉันไม่สามารถทำได้ด้วยDefault Programsยูทิลิตี้ที่มาพร้อมกับ Windows 7 เพราะใช้งานได้เฉพาะกับส่วนขยายที่ 'พบ' เท่านั้น

ดังนั้นจึงเป็นไปได้ที่จะเชื่อมโยงส่วนขยายไฟล์กับแอปพลิเคชันบน Windows โดยทางโปรแกรมหรือไม่


การแก้ปัญหาจะต้องมีอำนาจเซลล์ตามแท็กของคุณ?
Richard

1
ไม่เลยเพียงแค่พยายามรับผลประโยชน์ของ junkies บรรทัดคำสั่งของ Windows :)
deed02392

ใช้ Windows Easy Transfer เพื่อถ่ายโอนการตั้งค่าระบบของคุณซึ่งติดตั้งไว้ใน Windows 7-Vista และสามารถดาวน์โหลดสำหรับ XP ... microsoft.com/download/en/details.aspx?id=7349
Moab

นั่นไม่ใช่ตัวเลือกเนื่องจากการติดตั้ง Windows ดั้งเดิมไม่สามารถใช้งานได้อีกต่อไป
deed02392

คำตอบ:


63

ใช้ Ftype & Assoc เพื่อแก้ไขปัญหานี้ (และเป็นสคริปต์)

ใช้ Assoc เพื่อรับไฟล์

>Assoc .txt

ให้คุณ:

.txt = txtfile

แล้วก็

>Ftype txtfile=C:\Program Files (x86)\Notepad++\notepad++.exe %1

เมื่อคุณรู้ประเภทไฟล์แล้วคุณสามารถใช้ Ftype เพื่อเชื่อมโยงกับการกระทำ

สิ่งนี้จะใช้ได้กับไฟล์. php (เพียงแค่เขียนเป็นไฟล์แบตช์)

Assoc .php=phpfile
Ftype phpfile="C:\Program Files (x86)\Notepad++\notepad++.exe" %1

และคุณสามารถคัดลอกบรรทัดเหล่านี้เพื่อเพิ่มไฟล์ข้อความอื่น ๆ ตามที่คุณต้องการ


1
ที่น่าสนใจเมื่อฉัน>assoc .phpบอกว่ามันไม่มีความสัมพันธ์ของไฟล์? ดูเหมือนว่ามีการตั้งค่าอะไรบ้างเมื่อคุณระบุโปรแกรมเริ่มต้นเพื่อเปิดประเภทไฟล์ที่ไม่ 'ลงทะเบียน' ด้วยวิธีนี้ ทำไมจึงเป็นเช่นนั้น
deed02392

18
+1 สำหรับเครื่องมือบรรทัดคำสั่งสองรายการที่ฉันไม่ทราบว่ามีอยู่
Ian Boyd

1
วิธีนี้ทำให้ไฟล์ข้อความเปิดใน notepad ++ และไม่ใช่โปรแกรมที่กำหนดไว้ก่อนหน้า (notepad) มันจะไม่ทำให้ notepad ++ เปิดเมื่อคุณคลิกที่ใหม่ไม่ได้ลงทะเบียนนามสกุลไฟล์ (เช่น. pl, py หรือ c) เหมือนผู้ส่งถาม
ริชาร์ด

1
@ deed02392 คุณสามารถเพิ่มการเชื่อมโยงใหม่กับ assoc 'Assoc .php = phpfile' ควรใช้งานได้
uSlackr

2
เจตนาของคำตอบของฉันคือการแสดงให้คุณเห็นถึงวิธีการใช้งาน assoc & ftype ไม่ใช่เขียนไฟล์แบตช์ให้คุณ แต่ฉันจะเล่นพร้อมกัน
uSlackr

5

นี่คือสคริปต์ที่ทำงานสำหรับฉันใน Windows 10

$exts=@("txt","log","csproj","sql","xml","flobble")
echo "## setting up file associations"
foreach ($ext in $exts){
    $extfile=$ext+"file"
    $dotext="." + $ext
    cmd /c assoc $dotext=$extfile
    cmd /c "ftype $extfile=""C:\Program Files (x86)\Notepad++\notepad++.exe"" %1"
    echo ""
}
  • จะต้องมีการเรียกใช้ในหน้าต่าง PowerShell ผู้ดูแลระบบ (ยกระดับ)
  • Explorer จะรีเฟรชทันทีและแสดงไอคอนไฟล์ใหม่

https://gist.github.com/timabell/bc90e0808ec1cda173ca09225a16e194

ขอบคุณคำตอบอื่น ๆ สำหรับข้อมูลที่ฉันต้องการในการทำงานนี้


3

อย่างน้อยที่สุดคุณต้องสร้างรีจิสตรีคีย์หนึ่งตัวซึ่งจะให้ Notepad และ ID และพา ธ จากนั้นอีกอันสำหรับแต่ละส่วนขยายที่คุณต้องการลงทะเบียนเพื่อใช้งาน

ในการสร้าง ID และเส้นทาง (ตรวจสอบเส้นทางที่ชี้ไปยังตำแหน่งที่ถูกต้อง):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\notepad_pp]
@=""

[HKEY_CLASSES_ROOT\notepad_pp\shell]

[HKEY_CLASSES_ROOT\notepad_pp\shell\open]

[HKEY_CLASSES_ROOT\notepad_pp\shell\open\command]
@="\"C:\\Program Files (x86)\\Notepad++\\notepad++.exe\" \"%1\""

และจากนั้นทำซ้ำบิตถัดไปหนึ่งรายการสำหรับแต่ละส่วนขยาย (ในตัวอย่าง.plนี้ใช้สำหรับ Perl):

[HKEY_CLASSES_ROOT\.pl]
@="notepad_pp"

บันทึกไฟล์นี้ด้วยนามสกุล.regและตอนนี้คุณควรจะสามารถเชื่อมโยงส่วนขยายทั้งหมดอีกครั้งโดยคลิกสองครั้งที่ไฟล์นี้และยืนยันว่าคุณต้องการนำเข้ารายการในรีจิสทรี


1
น่าสนใจฉันกำลังค้นหาและดูเหมือนว่า Windows 7 จะทำอย่างไรเมื่อคุณตั้งค่าโปรแกรมให้โหลดคือสร้างรายการใน HKCR \ ext_auto_file \ shell \ open \ command ด้วยค่า "C: \ Program Files \ Notepad ++ \ notepad ++ .exe ""% 1 " คุณมาจากที่ไหน
deed02392

โดยพื้นฐานแล้วมันเหมือนกันเพียงแค่ ext_auto_file เปลี่ยนชื่อเป็นสิ่งที่มีความหมายมากกว่าเล็กน้อยและนามสกุลไฟล์หลายไฟล์ที่ชี้ไปยังรายการเดียว
Richard
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.