将 perl 脚本移植到 Windows

将 perl 脚本移植到 Windows

我有一个很棒的 perl 脚本,用于解压/解压缩文件的 tarball,然后关联十几个文件,以便对 NAS 系统进行智能故障排除。现在人们想看适用于 Windows 的版本 =/

我精通 Linux,但对 Perl 还是个新手,而且对 Windows 脚本编写不太熟悉。

我看到的问题是:(1)perl 的安装位置(2)我依赖的输出grepfind(3)版本之间的潜在障碍 - XP,Vista?,7,2k3,2k8。

到目前为止还没有运气赛格威或 Windows 版本的find。我有活动Perl安装在Windows 7上。

有什么想法吗?

答案1

可以使用以下方式访问 Grep(或类似 grep)函数

您可以使用寻找,每RedGrittyBrick 的注意上面(呃,下面?他一直在移动)。

我最近将 Windows Vista Perl 脚本移植到了 XP,这没什么大不了的。我遇到的唯一问题是使用 Perl 中的“exec”或“system”调用来触发 MS Office 程序的操作。除非您正在做这样的事情,否则您可能不会发现在 Windows 操作系统之间来回切换有什么困难。

顺便说一句,在我使用 ActiveState Perl 时,我最初并不知道 PPM 函数可以让你获取用于特殊函数的开源库。请务必尝试一下,以免重复造轮子。

答案2

  1. perl 的安装位置-不应导致任何问题。
  2. 使用 Perl 模块替换 grep/find 的使用。例如 File::Find。
  3. 我没有遇到任何 Windows 版本的问题。您有什么想法吗?

答案3

Cygwin 有findgrep

如果find出现一些奇怪的错误消息,则意味着您正在运行不同的find命令。

尝试编辑您的文件PATH,将 Cygwin 的/bin/usr/bin放在开头,或者find使用绝对路径名运行,例如/usr/bin/find而不是find


但是是的,其他人是对的,您当然可以用 Perl 的函数或正则表达式匹配运算符 (例如)find替换File::Find和命令。grepgrep
$line =~ /pattern/

ActivePerl 可能不错,但是草莓珍珠似乎正在成为 Windows 上最受欢迎的选项,因此如果由于某种原因 ActivePerl 无法正常工作,那么这是另一个选择。

答案4

您尝试过 msys 吗?我是 git 用户,所以我几乎将 msysgit 中的所有内容都视为我的操作系统的一部分。

msys-http://www.mingw.org/wiki/msys

msysgit-http://code.google.com/p/msysgit/

相关内容