Hi !
Sorry for my english !
My script must rename file name, but don't do it.
What is wrong with this script:
@rem = '--*-Perl-*--
@echo off
if "%OS%" == "Windows_NT" goto WinNT
perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
goto endofperl
:WinNT
perl -x -S %0 %*
if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
if %errorlevel% == 9009 echo You do not have Perl in your PATH.
if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
goto endofperl
@rem ';
#!/usr/bin/perl
use warnings;
use strict;
use File::Path;
use Cwd;
use File::Copy;
use File::Spec::Functions;
#hardcoded
my $FP = 'D:\conv';
my $TP = 'D:\sgml_db';
#my $NAME = 'mmc1';
my ($from_file, $to_file) = ($ARGV[0], $ARGV[0]);
my $cwd = `cd`;
chomp $cwd;
my ($from_dir, $to_dir) = ($cwd, $cwd);
#rename file part
#$to_file =~ s/.*\.(.+)/$NAME.$1/;
my $some_file = (<$to_dir>)[0];
my ($prefix) = $some_file =~ m/(\d+_\d+_\d+)[^\\]*$/;
$to_file =~ s/^(\w+)(\d*)\.(\w+)$/"$prefix_" . uc($1) . ($2 || 0) . "_ESM.$3"/e;
#rename dir part
$to_dir =~ s/^\Q$FP\E/$TP/;
mkpath($to_dir);
copy(catfile($from_dir, $from_file), catfile($to_dir, $to_file))
or die "can't copy file";
exit 0;
__END__
:endofperl