| | |
Find and Rename directory
![]() |
•
•
Join Date: Sep 2008
Posts: 8
Reputation:
Solved Threads: 0
Hi !
Sorry for my english !
My script must rename file name, but don't do it.
What is wrong with this script:
Sorry for my english !
My script must rename file name, but don't do it.
What is wrong with this script:
Perl Syntax (Toggle Plain Text)
@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
•
•
Join Date: Jun 2009
Posts: 10
Reputation:
Solved Threads: 2
0
#2 20 Days Ago
Perl Syntax (Toggle Plain Text)
my $FP = 'D:\conv'; my $TP = 'D:\sgml_db'; my $cwd = `cd`; # Get current working directory my ($from_dir, $to_dir) = ($cwd, $cwd); # if your current working directory ($to_dir) doesn't have 'D:\conv' the below line doesn't change the value of $to_dir. # So $to_dir equals to current directory and it already exists. # So mkpath($to_dir) doesn't work. $to_dir =~ s/^\Q$FP\E/$TP/; mkpath($to_dir);
So ensure your $to_dir value must match the $FP value and you will be get the expected output.
•
•
Join Date: Nov 2009
Posts: 9
Reputation:
Solved Threads: 0
0
#3 15 Days Ago
•
•
•
•
Perl Syntax (Toggle Plain Text)
my $FP = 'D:\conv'; my $TP = 'D:\sgml_db'; my $cwd = `cd`; # Get current working directory my ($from_dir, $to_dir) = ($cwd, $cwd); # if your current working directory ($to_dir) doesn't have 'D:\conv' the below line doesn't change the value of $to_dir. # So $to_dir equals to current directory and it already exists. # So mkpath($to_dir) doesn't work. $to_dir =~ s/^\Q$FP\E/$TP/; mkpath($to_dir);
So ensure your $to_dir value must match the $FP value and you will be get the expected output.
Perl Syntax (Toggle Plain Text)
$ head -n7 1perl.pl use strict; use warnings; use 5.010; my $cwd = `cd`; say $cwd; $ perl 1perl.pl $
Last edited by 7stud; 15 Days Ago at 10:13 pm.
•
•
Join Date: Nov 2009
Posts: 9
Reputation:
Solved Threads: 0
0
#4 15 Days Ago
Perl Syntax (Toggle Plain Text)
$ head -n7 1perl.pl use strict; use warnings; use 5.010; my $cwd = `pwd`; say $cwd; $ perl 1perl.pl /Users/me/2testing/dir1/perl_programs $
•
•
Join Date: Sep 2008
Posts: 8
Reputation:
Solved Threads: 0
0
#5 13 Days Ago
Hi !
Now I have problem:
"Global symbol $prefix" requires explicit package name".
What I must write for it.
Now I have problem:
"Global symbol $prefix" requires explicit package name".
What I must write for it.
•
•
•
•
Perl Syntax (Toggle Plain Text)
my $FP = 'D:\conv'; my $TP = 'D:\sgml_db'; my $cwd = `cd`; # Get current working directory my ($from_dir, $to_dir) = ($cwd, $cwd); # if your current working directory ($to_dir) doesn't have 'D:\conv' the below line doesn't change the value of $to_dir. # So $to_dir equals to current directory and it already exists. # So mkpath($to_dir) doesn't work. $to_dir =~ s/^\Q$FP\E/$TP/; mkpath($to_dir);
So ensure your $to_dir value must match the $FP value and you will be get the expected output.
•
•
Join Date: Jun 2009
Posts: 10
Reputation:
Solved Threads: 2
0
#6 12 Days Ago
•
•
•
•
$to_file =~ s/^(\w+)(\d*)\.(\w+)$/"$prefix_" . uc($1) . ($2 || 0) ."_ESM.$3"/e;
Hello friend, Is the below lines are working in your program? why you use the lines?
Perl Syntax (Toggle Plain Text)
my $some_file = (<$to_dir>)[0]; my ($prefix) = $some_file =~ m/(\d+_\d+_\d+)[^\\]*$/;
![]() |
Similar Threads
- find root directory (VB.NET)
- Rename directory in ant build script (Java)
- File ext rename (Shell Scripting)
- RPM not install ? (*nix Software)
- find a specific directory (Java)
- Page cannot be displayed (Web Browsers)
- Possible Data Lost, Help! (Windows 95 / 98 / Me)
Other Threads in the Perl Forum
- Previous Thread: Analysing text files to obtain statistics on their content Using Perl
- Next Thread: Excel formula copy
| Thread Tools | Search this Thread |





