1

У меня есть отличный Perl-скрипт, который я использую, чтобы распаковать / распаковать архив с файлом, а затем сопоставить более десятка файлов для интеллектуального устранения неполадок в системе NAS. Теперь люди хотят видеть версию для Windows = /

Я разбираюсь в Linux, новичок в Perl и совсем не знаком со сценариями для Windows.

Заметки, которые я вижу: (1) место установки perl (2) Я полагаюсь на вывод grep и find (3) потенциальные недостатки между версиями - XP, Vista?, 7,2k3,2k8.

Пока не повезло с Cygwin или Windows-версией find . У меня ActivePerl установлен на Windows 7.

Мысли?

5 ответов5

2

Cygwin имеет find и grep .

Если при find выдается какое-то странное сообщение об ошибке, это означает, что вы запускаете другую команду find .

Попробуйте отредактировать ваш PATH чтобы поместить в начало Cygwin /bin и /usr/bin , или запустите find используя абсолютный путь, например, /usr/bin/find вместо find .


Но да, другие правы, вы, безусловно , можете заменить find с File::Find и командами grep с функцией grep Perl или регулярными выражениями операторов
(например, $line =~ /pattern/).

ActivePerl, вероятно, в порядке, но Strawberry Perl, похоже, становится наиболее популярным вариантом в Windows, так что это еще один вариант, если по какой-то причине ActivePerl не работает.

2
  1. Установите местоположение Perl - не должно вызывать никаких проблем.
  2. Замените использование grep/find на модули Perl. Например, File::Find.
  3. У меня не было проблем с версией Windows. Что у тебя было на уме?
2

Grep (или grep-подобные) функции могут быть достигнуты с помощью

Вы можете использовать find согласно примечанию RedGrittyBrick выше (ошибаться, ниже? Он продолжает двигаться).

Я недавно перенес сценарий Perl для Windows Vista в XP, и это не так уж сложно. Единственные проблемы, с которыми я столкнулся, - это использование exec или системных вызовов в Perl для запуска работы программ MS Office. Если вы не сделаете что-то подобное, вы, вероятно, не столкнетесь с трудностями при перемещении назад и вперед среди ОС Windows.

Кстати, я изначально не знал, когда использовал ActiveState Perl, функцию PPM, которая позволяет вам использовать библиотеки с открытым исходным кодом для специальных функций. Обязательно попробуйте это, чтобы избежать повторного изобретения колеса.

1

Cygwin, как правило, является самым простым решением проблемы такого типа. Какие проблемы у вас были с этим?

0

Вы пробовали msys? Я являюсь пользователем git, поэтому я почти все, что от msysgit, теперь являюсь частью моей ОС.

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .