2010-09-09 25 views
9

Tôi đang cố gắng tìm cách đăng ký các tệp có phần mở rộng .pl làm tệp thi hành. Tôi đã dành thời gian trên web để tìm giải pháp, nhưng tôi không thể tìm thấy bất kỳ thứ gì.Chạy tập lệnh perl trên windows mà không cần mở rộng

Những gì tôi có thể làm: tôi đã thực hiện một kịch bản, chúng ta hãy gọi nó myscript.pl
tôi có thể chạy nó như thế này:

perl myscript.pl [my_script_parameters] 

Bây giờ kể từ khi tập tin được gắn liền với perl, tôi có thể cũng chạy nó như:

myscript.pl [my_script_parameters] 

Bây giờ, tôi biết rằng ở đâu đó là một danh sách các phần mở rộng được coi là thực thi (.exe, .bat, v.v.). Tôi muốn thêm.plvào danh sách này để tôi có thể chạy kịch bản của tôi như thế này:

myscript [my_script_parameters] 

Có ai biết làm thế nào để làm điều này?

Trả lời

13

Có, có hỗ trợ tích hợp cho việc này. Nếu bạn kiểm tra sự trợ giúp cho lệnh FTYPE, bạn sẽ thấy một ví dụ perl.

C:> giúp đỡ ftype

Hiển thị hoặc sửa đổi các loại tập tin sử dụng trong hiệp hội mở rộng tập tin

ftype [filetype [= [openCommandString]]]

filetype Chỉ định loại tập tin để kiểm tra hoặc thay đổi openCommandString Chỉ định lệnh mở để sử dụng khi khởi chạy các tệp loại này.

Nhập FTYPE không có tham số hiển thị các loại tệp hiện tại mà có chuỗi lệnh mở được xác định. FTYPE được gọi với chỉ một loại tệp , nó hiển thị chuỗi lệnh mở hiện tại cho loại tệp đó. Chỉ định không có lệnh nào cho lệnh mở chuỗi và lệnh FTYPE sẽ xóa chuỗi lệnh mở cho loại tệp . Trong lệnh mở, chuỗi% 0 hoặc% 1 được thay thế bằng tên tệp được khởi chạy qua xác nhận quyền sở hữu. % * nhận được tất cả thông số và% 2 nhận tham số thứ nhất,% 3 giây, v.v.% ~ n nhận tất cả các tham số còn lại bắt đầu với tham số thứ n, trong đó n có thể nằm trong khoảng từ 2 đến 9 . Ví dụ:

ASSOC .pl=PerlScript 
FTYPE PerlScript=perl.exe %1 %* 

sẽ cho phép bạn gọi một Perl kịch bản như sau:

script.pl 1 2 3 

Nếu bạn muốn loại bỏ sự cần thiết phải loại các phần mở rộng, sau đó làm sau:

set PATHEXT=.pl;%PATHEXT% 

và tập lệnh có thể được gọi là follo ws:

script 1 2 3 
+0

Phiên bản hệ điều hành nào của Microsoft có tính năng mới này? –

+0

Nó đã được khoảng từ NT, thậm chí có thể sớm hơn. –

+0

Xin chào! Cảm ơn vì đã trả lời. Tôi đã thử nhưng vì một lý do nào đó nó không thể khởi động lại. Có lẽ tôi phải tìm tập tin cấu hình đúng được gọi lúc khởi động. – Pascal

-1

cách tiếp cận tốt nhất của bạn sẽ được để viết một tập tin batch gọi myscript.bat, đặt nó trong đường dẫn của bạn, và có nó chạy script của bạn .. ví dụ

@echo off 
c:\perl\bin\perl.exe c:\scripts\myscript.pl %* 
+8

Nếu bạn muốn thực hiện một loạt "wrapper" cho một kịch bản Perl, sử dụng tiện ích 'pl2bat' đi kèm với perl. –

+0

Xin chào! Cảm ơn vì đã trả lời. Vấn đề nếu tôi sử dụng phương pháp này là tôi phải thực hiện một loạt cho mỗi kịch bản tôi viết ... – Pascal

6

Bạn chỉ cần thêm "; .PL" vào biến môi trường PATHEXT. Nhấp chuột phải vào "Máy tính của tôi"> Thuộc tính> Nâng cao> Biến môi trường> Biến hệ thống.

+0

Xin chào! Cảm ơn vì đã trả lời! Vâng, đó là chính xác những gì tôi đang tìm kiếm. – Pascal

+0

Tôi đã thêm '.pl' và' .PL' vào 'PATHEXT' nhưng tệp của tôi vẫn mở bằng trình chỉnh sửa. Tôi đang cố gắng thực hiện dưới dạng 'C: \> newprog.pl' –

+0

Bạn đã khởi động lại chưa? Hay bạn đã thực hiện 'set' để xem biến PATHEXT có giá trị mới trong giao diện điều khiển không? – AndiDog

Các vấn đề liên quan