Автор Тема: Чайник::глупый вопрос  (Прочитано 3232 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ADm

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Чайник::глупый вопрос
« : 03 Октября 2003, 08:48:49 »
Подскажите пожалуйста почему не работает такой скрипт:
вызывается из ком. строки (win) так
 type args.txt | perl my_script.pl

файл args.txt содержит имена файлов (одно имя на строку) для переименоввания. в файле 5 строк

скрипт ---------------------------------------------------------------------------
@all_files=;

for ($i=0; $i<=@all_files; $i++) {
        $current_file_name=$all_files[$i];
        $new_file_name=
               get_new_file_name($current_file_name);

#В этой строке ошибка:
        rename($current_file_name,$new_file_name) || die "$!";
}
конец------------------------------------------------------------------------------

Ошибка следующего содержания:
 Permission denied at c:\\temp\\perl\\rna.pl line 31, line 5.
переименовываемые файлы никем не заняты и имееся полный набор разрешений на работу с ними.
 Если убрать цикл и обрабатывать один файл все работает..
 
 Очень прошу сильно не пинать, вопрос быть может простой но я уж и не знаю что делать...
 Заранее спасибо!

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Чайник::глупый вопрос
« Ответ #1 : 03 Октября 2003, 10:24:59 »
Цитировать
for ($i=0; $i<=@all_files; $i++) {

for ($i=0; $i<=$#all_files; $i++) {
0 OK, 0:1

Оффлайн ADm

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Чайник::глупый вопрос
« Ответ #2 : 03 Октября 2003, 10:41:23 »
Цитировать
ondr:
for ($i=0; $i<=$#all_files; $i++) {


так конечно правильней Ж), но это тоже не работает.

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Чайник::глупый вопрос
« Ответ #3 : 03 Октября 2003, 10:59:35 »
вместо rename впиши print "$current_file_name,$new_file_name\\n";
и пришли результат
и еще листинг файла args.txt
а также листинг директории
0 OK, 0:1

Оффлайн ADm

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Чайник::глупый вопрос
« Ответ #4 : 03 Октября 2003, 11:48:52 »
вот результат:
c:\\temp\\perl\\test\\test1a.txt
, c:\\temp\\perl\\test\\test1a0102003.txt

c:\\temp\\perl\\test\\test2a.txt
, c:\\temp\\perl\\test\\test2a0102003.txt

c:\\temp\\perl\\test\\test3a.txt
, c:\\temp\\perl\\test\\test3a0102003.txt

c:\\temp\\perl\\test\\test4a.txt
, c:\\temp\\perl\\test\\test4a0102003.txt

c:\\temp\\perl\\test\\test5a.txt, c:\\temp\\perl\\test\\test5a0102003.txt

Вот args.txt:
c:\\temp\\perl\\test\\test1a.txt
c:\\temp\\perl\\test\\test2a.txt
c:\\temp\\perl\\test\\test3a.txt
c:\\temp\\perl\\test\\test4a.txt
c:\\temp\\perl\\test\\test5a.txt

Листинг директории:
 Tom v ustrojstve C ne imeet metki.
 Serijnyj nomer toma: 0816-73C4

 Soderzhimoe papki C:\\Temp\\perl\\test

03.10.2003  08:17              .
03.10.2003  08:17              ..
03.10.2003  12:34               148 args.txt
17.09.2003  14:25                 1 test1a.txt
17.09.2003  14:25                 1 test2a.txt
17.09.2003  14:25                 1 test3a.txt
17.09.2003  14:25                 1 test4a.txt
17.09.2003  14:25                 1 test5a.txt
               6 fajlov            153 bajt
               2 papok   2 365 960 192 bajt svobodno

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Чайник::глупый вопрос
« Ответ #5 : 03 Октября 2003, 12:30:50 »
После $current_file_name=$all_files[$i]; воткни chomp $current_file_name
0 OK, 0:1

Оффлайн ADm

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Чайник::глупый вопрос
« Ответ #6 : 03 Октября 2003, 13:30:20 »
теперь работает. БОЛШОЕ СПАСИБО!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28