【问题标题】:Running a perl script on windows without extension在没有扩展名的 Windows 上运行 perl 脚本
【发布时间】:2010-09-09 13:42:55
【问题描述】:

我正在尝试找到一种方法将扩展名为 .pl 的文件注册为可执行文件。 我在网上花了一些时间寻找解决方案,但找不到任何东西。

我能做什么: 我做了一个脚本,我们称之为 myscript.pl
我可以这样运行它:

perl myscript.pl [my_script_parameters]

现在由于该文件与 perl 相关联,我也可以将其运行为:

myscript.pl [my_script_parameters] 

现在,我知道在某处存在被视为可执行文件(.exe、.bat 等)的扩展列表。我想添加 .pl 到此列表,以便我可以像这样运行我的脚本:

myscript [my_script_parameters]

有人知道怎么做吗?

【问题讨论】:

    标签: perl executable


    【解决方案1】:

    是的,对此有内置支持。如果您查看命令 FTYPE 的帮助,您将看到一个 perl 示例。

    C:>帮助 ftype

    显示或修改使用的文件类型 在文件扩展名关联中

    FTYPE [fileType[=[openCommandString]]]

    fileType 指定文件类型 检查或更改 openCommandString 指定何时使用的打开命令 启动文件 这种类型的。

    键入不带参数的 FTYPE 显示当前的文件类型 已定义打开的命令字符串。 仅使用文件调用 FTYPE 类型,它显示当前打开 该文件类型的命令字符串。 不为打开命令指定任何内容 字符串和 FTYPE 命令将 删除打开的命令字符串 文件类型。在打开的命令中 字符串 %0 或 %1 被替换为 通过启动的文件名 协会。 %* 获取所有 参数和 %2 获得第一个 参数,%3 秒等 %~n 获取所有剩余参数 从第 n 个参数开始,其中 n 可以在 2 和 9 之间,包括 2 和 9。 例如:

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

    将允许您调用 Perl 脚本如下:

    script.pl 1 2 3
    

    如果您想消除 键入扩展名,然后执行 以下:

    set PATHEXT=.pl;%PATHEXT%
    

    并且脚本可以被调用为 如下:

    script 1 2 3
    

    【讨论】:

    • 什么版本的微软操作系统有这个新功能?
    • 它从 NT 就已经存在,甚至可能更早。
    • 您好!感谢您的回复。我尝试过,但由于某种原因,它无法在重新启动后幸存下来。可能我必须找到在启动时调用的正确配置文件。
    • 如果您按照说明永久更改 PATHEXT,这将在重新启动后继续存在。
    【解决方案2】:

    您可以简单地将“;.PL”添加到 PATHEXT 环境变量中。右键单击“我的电脑”> 属性 > 高级 > 环境变量 > 系统变量。

    【讨论】:

    • 您好!感谢您的回复!是的,这正是我想要的。
    • 我已将.pl.PL 添加到PATHEXT,但我的文件仍然使用编辑器打开。我正在尝试以C:\> newprog.pl 的身份执行
    • 你重启了吗?还是你在控制台执行set查看PATHEXT变量是否有新值?
    【解决方案3】:

    您最好的方法是编写一个名为 myscript.bat 的批处理文件,将其放在您的路径中,然后让它运行您的脚本。例如

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

    【讨论】:

    • 如果您想为 Perl 脚本制作一个批处理“包装器”,请使用 perl 附带的 pl2bat 实用程序。
    • 您好!感谢您的回复。如果我使用这种方法,问题是我必须为我编写的每个脚本制作一个批处理...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 2012-02-20
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    相关资源
    最近更新 更多