2012-04-24 2 views
0

Я новичок в Perl, и у меня возникли проблемы с одной вещью.Perl: путь чтения из командной строки

У меня есть код:

$original_file = "y:\\Users\\XXX\\perlScript\\test1.xml"; 
$new_file = "y:\\Users\\XXX\\perlScript\\summary_test1.xml"; 
copy($original_file, $new_file) or die "File cannot be copied"; 

мне нужно прочитать путь из CMD командной строки (я использую пакетный файл). Для примера:

>summary.bat c>\path\file_name.xml 

После копирования Я хотел бы создать summary_file_name.xml в той же папке

Благодаря

+2

Вы действительно ввели 'c> \ path \ имя_файла.xml' или вы имели в виду вместо этого ввести двоеточие? – TLP

ответ

0

Вы хотите использовать File::Basename. Это стандартная библиотека в Perl, по крайней мере, начиная с 5.14, поэтому вам не нужно устанавливать что-либо новое.

use File::Basename; 
my($filename, $directories, $suffix) = fileparse($original_file); 
my $new_file = $directories . "/summary.xml"; 

Для получения дополнительной информации см. Perl Docs.

1

Вы спрашиваете, как программа Perl получает аргументы командной строки? Вы найдете их в массиве @ARGV.

Смежные вопросы