2017-09-05 21 views
1

perlを使って過去1時間のファイルの名前を変更しようとしています。私は永遠に研究し、すべてを試したが、何も働かなかった。 perlを使用してファイルの名前を変更するにはどうすればよいですか?ここに私のスクリプトは次のとおりです。Perlを使ってファイルの名前を変更する方法

use strict; 
use warnings; 
use Time::Piece; 
use File::Copy qw(move); 


# Open the log file 
    my $log_file = 'testLog.log'; 
    open my $log_fh, '<', $log_file or die "Could not open file $log_file: 
$! +"; 

# Create New File 
    my $new_log_file = 'testLog.log'; 

# My file size (bytes) 
    my $logFileSize = -s $log_file; 

# My file size (Mb) 
    my $logFileSizeMB = $logFileSize/1000000; 

# File size limit 
    my $fileSizeLimit = 100; 

# Get Date 
my $date = localtime->strftime('%m/%d/%Y'); 

# New File Name 
my $newFileName = "testLog_$date.log"; 

sub main { 

    if ($logFileSizeMB > $fileSizeLimit) { 

     close $log_fh or die "Could not close file $log_file: $!"; 

     #print "$newFileName\n"; 
     rename("testLog.log", "testLog_$date.log") || die ("Error Renaming 
File"); 



     #open my $new_log_fh, '>', $new_log_file or die "Could not open file 
$new_log_file: $! +"; 
     #close $new_log_fh or die "Could not close file $new_log_file: $!"; 

     print "New log file created successfully!"; 

    } else { 

     print "File size is under $fileSizeLimit"; 

    } 


    exit(0); 
} 

main(); 

私はこれを実行すると、ファイルが変更されないまま...この問題を解決する方法上の任意のアイデアを?

+0

どのようなエラーが表示されますか? – ikegami

+0

「DeleteLogFile.pl行のエラー・リネーム・ファイル58」 –

+0

名前を変更しました。「名前変更」はどのようなエラーを返しましたか? ( "testLog.log"から "testLog_ $ date.log":$!\ n ")')に変更するエラー(die( " ファイルの名前を変更するエラーのエラー"を '死にます") ') – ikegami

答えて

7

/は、ディレクトリセパレータであるため、ファイル名には有効な文字ではありません。ディレクトリtestLog_09/052017.logに現在のディレクトリのtestLog.logの名前を変更するように指示しました。そのディレクトリは存在しません。

変更

my $date = localtime->strftime('%m/%d/%Y'); 

いっそ

my $date = localtime->strftime('%m-%d-%Y'); 

に、自然にソート形式を使用します。

my $date = localtime->strftime('%Y-%m-%d'); 
+0

これはうまくいきました...どのようにエラーは "そのようなファイルやディレクトリはありませんでした"?それが新しい名前フォーマット –

+1

の問題であった場合は、ファイル名を 'testLog_09/05'ディレクトリの' 2017.log'に変更するように要求しました。そのディレクトリは存在しません。 – ikegami

+0

ああ大丈夫、それは意味がある...ありがとう! –

関連する問題