วิธีการเชื่อมโยงนามสกุลไฟล์ที่จะเปิดด้วยชุดสคริปต์?


0

ฉันต้องการกำจัด OSPPSVC (บริการแพลตฟอร์มการป้องกันซอฟต์แวร์ Office)

จากนั้นฉันได้แทนที่ลิงก์เพื่อเปิดโปรแกรม Office ด้วยลิงก์ไปยัง launcher.bat:

@echo off
title Launching Office...
Set target=%1

sc config osppsvc start= demand
net start osppsvc

:check
if exist "%target%.exe" goto launch
Set/p target="Introduce the program to open:"
goto check

:launch
start %target%.exe %2

sleep 10

sc config osppsvc start= disabled
net stop osppsvc

และฉันสามารถเปิดไฟล์ได้ในคอนโซลฉันป้อน:

"C:\Path\To\Office14\launcher.bat" winword "C:\Path\To\File\doc.docx"

แต่เนื่องจากฉันต้องการรวมการสำรวจฉันได้พยายามเชื่อมโยง .docx ส่วนขยายที่จะเปิดด้วย

"C:\Path\To\Office14\launcher.bat" winword "%1"

แต่มันไม่ทำงาน: ไฟล์แบตช์ทำงาน แต่ไม่เปิด Word (จะขอให้ "แนะนำโปรแกรมให้เปิด:")


แก้ไข : รหัสคงที่:

@echo off
title Launching Office...
Set name=%1

sc config osppsvc start= demand
net start osppsvc

:check
Set target="%~dp0%name%.exe"
if exist %target% goto launch
Set/p name="Introduce the program to open:"
goto check

:launch
start "" %target% %2

sleep 10

sc config osppsvc start= disabled
net stop osppsvc

คำตอบ:


0

ที่จริงแล้วปรากฏว่าคุณต้องระบุว่าโฟลเดอร์% target% อยู่ในโฟลเดอร์ใดเว้นแต่ว่าเส้นทาง Office นั้นอยู่ใน% PATH ของคุณ


แต่ถ้า launcher.bat อยู่ในโฟลเดอร์ Office ไม่ควรทำงานเหรอ
Oriol

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