File name with "interval"

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • viktorijakup
    New Member
    • Sep 2008
    • 10

    File name with "interval"

    Hi !!!

    Code:
    @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 = 'X:\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/;
    #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
    This script work perfectly and with file name with "interval", for example: PLB2 5284.tex,
    but when I run script from "Main meniu" I get mistake.

    You could it view in picture:



    Help me with this problem....!!!

    I must have script....which send file with name with "interval" from "Main meniu".
  • numberwhun
    Recognized Expert Moderator Specialist
    • May 2007
    • 3467

    #2
    I would change line 33 to be:

    Code:
    copy(catfile($from_dir, $from_file), catfile($to_dir, $to_file)) or die "can't copy file: $!";
    The "$!" will print out the error that was produced from the copy attempt. Your error lets you know something was wrong, but unless you print out the actual received error, you won't know the real issue.

    Regards,

    Jeff

    Comment

    • viktorijakup
      New Member
      • Sep 2008
      • 10

      #3
      Hi !!!

      Now i get mistake:

      Code:
      can't copy file: No such file or directory at D:\MMC1.bat line 21.
      V.



      Originally posted by numberwhun
      I would change line 33 to be:

      Code:
      copy(catfile($from_dir, $from_file), catfile($to_dir, $to_file)) or die "can't copy file: $!";
      The "$!" will print out the error that was produced from the copy attempt. Your error lets you know something was wrong, but unless you print out the actual received error, you won't know the real issue.

      Regards,

      Jeff

      Comment

      • numberwhun
        Recognized Expert Moderator Specialist
        • May 2007
        • 3467

        #4
        Originally posted by viktorijakup
        Hi !!!

        Now i get mistake:

        Code:
        can't copy file: No such file or directory at D:\MMC1.bat line 21.
        V.

        I would guess that one of the directories you are referencing in the code does not exist (or files).

        Regards,

        Jeff

        Comment

        • viktorijakup
          New Member
          • Sep 2008
          • 10

          #5
          Hi !!!

          But when I call script in this manner:

          Code:
          script.bat ''file with spaces.txt''
          My script work perfect...

          V.



          Originally posted by numberwhun
          I would guess that one of the directories you are referencing in the code does not exist (or files).

          Regards,

          Jeff

          Comment

          Working...