Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Системное программирование > Передача адресса папки через командную строку |
Автор: heluna 24.3.2010, 22:01 | ||
Привет всем, извеняюсь сразу же за наверное уже не раз заданый здесь вопрос (хотя я к сожалению не нашла, то что искала) существует перл- скрипт, при его запуске, пользователь должен указать адрес папки с которой он хочет работать. Много раз встречала такие примеры............ и попыталась использовать его у себя, но выходят постоянно ошибки, можете подсказать, что я делаю не правильно.... может, я чего-то не знаю и не передаю в начале???? Спасибки за ранее всем...........
|
Автор: RomanCh 25.3.2010, 01:26 | ||
Честно говоря все телепаты из наших краёв уехали и потому я не очень представляю что (и зачем?) ты пытаешься сделать, и что за ошибки у тебя там выскакивают. Но мне кажется что на правильные мысли тебя может навести нечто вроде этого простого кода:
|
Автор: heluna 25.3.2010, 02:08 |
))))))))))))ok, проблема в том, что я не могу передать pаth через dos-prompt, этот код который ты мне написал к сожалению, тоже не идёт, хотя я думаю, ты проблему понял и без уехавших телепатов)))))). А мой вопрос был, как передать в этом случае path через dos-prompt)))))))))) |
Автор: amg 25.3.2010, 07:23 |
heluna, в Вашем скрипте строка my $srcDir = <STDIN>; означает, что скрипт хочет получить название директории $srcDir со стандартного входа. Это можно сделать так: echo "c:/src/Dir" | script.pl Если упомянутую выше строку заменить на my $srcDir = shift; то синтаксис вызова скрипта будет проще: script.pl "c:/src/Dir" |
Автор: krypt3r 25.3.2010, 07:25 | ||
В переменной $path будет переданное из командной строки значение (параметр), которое можно использовать далее в скрипте. Кроме этого, есть модули Getopt::Std и Getopt::Long. |
Автор: RomanCh 25.3.2010, 23:00 | ||||||
Эээ... Интересно, что я делаю не так? Linux:
И конечно же всеми любимый Windows!
Можно хотя бы узнать что "не идёт" в моём примере? Я в растерянности, мои способности к телепатии исчерпаны. |
Автор: heluna 26.3.2010, 03:35 | ||
Спасибо всем за ответы....вы все супер)))) Роман извени пожалуйсто, всё идёт, спасибки огромное.........)) Можно следующий вопрос..... проверяя эту директорию, я пробегаю все находящиеся там даты, и все даты старше года я переношу в другую папку Backup, при этом я хочу создать текстфайл, где будут стоять все названия(filename,dirname), время создачи файла или директории(lastMod) и размеры(size) в КБ от дат, которые я перенесла в другую папку. Выдача имён не создала мне больших трудностей, но вот размер дат и время я выдать не могу.....так как я поняла, вы тут все умнички, такчто наверное быстренько ошибку найдёте, где я опять ступила....... ещё раз спасибо!!!
|
Автор: ginnie 26.3.2010, 16:34 | ||
heluna, а что скрипт выдает вместо даты? Должен выдавать целое число - unixtime, которое можно перевести в любой удобный вид. Для получения размера, надо, наверное, написать
|
Автор: heluna 26.3.2010, 18:22 |
Ок, спасибо за ответы....... не признаёт мой скрипт эту функцию size()...... Замудрила я что-то в своём скрипте, зайду к этой проблеме с другой стороны, попробую переписать скрипт........ :dash1 всем спасибо. Я ещё не раз обращусь к вашей помощи.....)) |
Автор: ginnie 26.3.2010, 18:27 |
heluna, не сложно будет показать нам текст сообщения об ошибке про функцию size()? |
Автор: heluna 26.3.2010, 18:41 |
Can´t call method "size" on an undefined value at Programme.pl line 123, <STDIN> line1 ну вот что-то в этом роде..... |
Автор: ginnie 26.3.2010, 18:47 | ||
heluna, попробуйте так:
|