【问题标题】:How to Get Perl to Automatically Look in Specific Directories for Scripts?如何让 Perl 自动在特定目录中查找脚本?
【发布时间】:2016-09-16 02:24:28
【问题描述】:

我在 Windows 机器上安装了 ActiveState Perl。

现在,假设我在此目录中有脚本,包括一个名为 "SomeScript.pl" 的脚本:

"C:\Example\Foo\Bar\"

如何将 Perl 配置为在传递脚本路径时自动在该目录中查找脚本?

例如,从命令行,我可以运行...:

perl C:\Example\Foo\Bar\SomeScript.pl

...很好。

但以下...:

perl SomeScript.pl

失败,因为 Perl 不知道在 "C:\Example\Foo\Bar\" 目录中查找。从命令行传递脚本名称时,如何将 Perl 配置为在某些特定目录中自动查找脚本?

【问题讨论】:

  • 这可能会有所帮助 - superuser.com/questions/284342/…
  • 那个链接没有用。设置 Windows PATH 环境变量仅在命令直接传递给 Windows shell 时有用,而不是在这种情况下,它是作为参数传递给 Perl 可执行文件的脚本文件名。

标签: perl activestate


【解决方案1】:

这至少在某些 Windows Perls 中是可能的(我使用的是 Strawberry 5.24)。

  1. 将所需的路径添加到您的 Windows PATH。 控制面板 > 系统 > 高级系统设置 > 环境变量

  2. 使用 -S 开关运行 perl。

    perl -S program.plx

管理 PATH 的所有常见难题都适用(例如,运行第一个具有该名称的文件)。

【讨论】:

  • 非常感谢!这行得通!我试图为你点赞,但作为一个新用户,我显然没有足够的声望来支持点赞数。
  • 我想也许可以选择标记/接受它作为答案。我也是新人,所以不确定。
【解决方案2】:

这不是 perl 的问题,更多的是与您的 $PATH 变量有关。

如果您使用的是最新 windows 10,您可以通过将export PATH=<your directory here>:$PATH 附加到该文件的末尾来将该目录添加到您的.bashrc 文件中。

或者,您也可以通过菜单将该目录添加到您的 PATH 中。 Edit Environment Variables via the "Advanced" section of "System Properties".

然后重启你的命令窗口,你就可以运行脚本了:

SomeScript.pl

【讨论】:

  • 我不明白你的意思。没有.bashrc 文件,因为shell 是Windows 命令提示符,而不是Bash。如果您的意思是将脚本目录添加到 Windows %PATH% 环境变量中,我已经尝试过了,但它不起作用; Perl 在决定在哪里寻找脚本时显然不会检查 Windows %PATH% 环境变量。
  • 你不能按照你的要求去做。在路径中只搜索可执行程序,而不搜索参数。您的脚本不是可执行文件。将目录放入 %PATH% 不会做任何事情。如果你真的只想设置一个变量set MYFILE=c:\foo\bar\script.pl,那么你可以做perl %MYFILE%
  • 随时编辑我对您答案的编辑。 :) 当我听说 Windows 上有 bash 时我很兴奋,但显然我的 Windows 10 版本都太旧了。
  • 那个stackoverflow.com/questions/23400030/windows-7-add-path 链接是关于修改Windows PATH 变量,这仅在命令直接传递给Windows shell 时有用,而不是在这种情况下,这是一个脚本文件名作为参数传递给 Perl 可执行文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 1970-01-01
  • 1970-01-01
  • 2011-10-26
相关资源
最近更新 更多