তারিখ অনুসারে স্বয়ংক্রিয়ভাবে সাবফোল্ডারগুলি তৈরি করুন এবং দিন শেষে ফাইলগুলি সাবফোল্ডারে সরান


0

আমি অডিও রেকর্ড করতে আইপিএস সফটওয়্যারটি ব্যবহার করি এবং একটি ফোল্ডারে রেকর্ডিংগুলি সংরক্ষণ করতে আমি এটি সেট আপ করেছি। সমস্যাটি হ'ল কোনও সংস্থা নেই তাই আমার এক ফোল্ডারে কয়েক হাজার অডিও রেকর্ডিং রয়েছে।

আমার লক্ষ্য হ'ল একটি ফোল্ডার কাঠামো সেট আপ করা যা তারিখ অনুসারে সংগঠিত হয় এবং তৈরি করা / সংশোধিত সমস্ত ফাইল সরিয়ে নিয়ে যায় (দ্রষ্টব্য: তৈরির তারিখটি পরিবর্তনের তারিখের মতো নয়, সুতরাং স্ক্রিপ্টে কোনও পার্থক্য থাকলে আমি ' দিন শেষে উভয় উপলব্ধ দয়া করে।)।

ফোল্ডারের অবস্থানটি: এম: \ সুরক্ষা সফ্টওয়্যার। আইপিএস Spy অডিও \ ভিএইচসিএক্স

এটি ফাইলের একটি উদাহরণ: 1_2016-04-19_14-06-02.mp3

বা 1_YYYY-MM-DD_HH-MM-SS.mp3

আমার গবেষণায়, আমি নিম্নলিখিত স্ক্রিপ্টগুলি দেখতে পেয়েছি [উত্স]

@echo off
for /d %%i in (*) do (
cd %%i
call :doMove
cd ..
)
echo Really Done
goto eof:
pause




:doMove
echo Moving files... Please wait...
for /F "tokens=1-3,4* delims=-_" %%a in ('dir /b *.avi') do (
title Processing %%b-%%c-%%d_%%e
if not exist ".\%%b\%%c\%%d" (
 mkdir ".\%%b\%%c\%%d"
 echo New Date: \%%b\%%c\%%d
)
if exist "%%a_%%b-%%c-%%d_%%e" move "%%a_%%b-%%c-%%d_%%e" ".\%%b\%%c\%%d\%%e"
if exist "%%a_%%b_%%c-%%d-%%e" move "%%a_%%b_%%c-%%d-%%e" ".\%%b\%%c\%%d\%%e"
)
for /F "tokens=1-3,4* delims=-_" %%a in ('dir /b *.mp4') do (
title Processing %%b-%%c-%%d_%%e
if not exist ".\%%b\%%c\%%d" mkdir ".\%%b\%%c\%%d"
if exist "%%a_%%b-%%c-%%d_%%e" move "%%a_%%b-%%c-%%d_%%e" ".\%%b\%%c\%%d\%%e"
if exist "%%a_%%b_%%c-%%d-%%e" move "%%a_%%b_%%c-%%d-%%e" ".\%%b\%%c\%%d\%%e"
)

echo Moving Thumbs
for /F "tokens=1-3,4* delims=-_" %%a in ('dir /b thumbs\*.jpg') do (
title Processing %%b-%%c-%%d_%%e
if exist "thumbs\%%a_%%b-%%c-%%d_%%e" move "thumbs\%%a_%%b-%%c-%%d_%%e" ".\%%b\%%c\%%d\%%e"
if exist "thumbs\%%a_%%b_%%c-%%d-%%e" move "thumbs\%%a_%%b_%%c-%%d-%%e" ".\%%b\%%c\%%d\%%e"
)



title Done.
:EOF

আমি একটি পার্ল স্ক্রিপ্টও পেয়েছি [উত্স]

#!/usr/bin/perl -w
use strict;
use File::stat;
use File::Copy;
use POSIX;
use Mail::Sendmail;
use Date::Calc qw(:all);

my $oldest_week = 4;
my $delete_week = 1;
my $move_count = 0;
my $delete_count = 0;

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;

$year += 1900;
$mon += 1;

my ($current_week,$current_year) = Week_of_Year($year, $mon, $mday);

my @folders = ("D:/iSpy/video/Front Door",
               "D:/iSpy/video/Front Path",
               "D:/iSpy/video/Garden",
               "D:/iSpy/video/Lounge",
               "D:/iSpy/video/Patio",
               "D:/iSpy/video/Shed");

foreach (@folders)

{
    my $viddir=$_;

    print "$viddir\n\n";

    opendir("curdir",$viddir)||die("Cannot open Directory!");

    my @names=readdir("curdir");

    foreach (@names)

    {

      my $name=$_;
      my $source = $viddir."/".$name;
      my $upname=uc($name);
      my $pos_avi=index($upname,".AVI");
      my $pos_mp4=index($upname,".MP4");

      if ($pos_avi > 0 or $pos_mp4 > 0)  

        { 

        ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime (stat($source)->mtime);

        $year += 1900;
        $mon += 1;

        my ($week,$year) = Week_of_Year($year, $mon, $mday);

        print "file $source was updated on $year $mon $mday - that was week $week - ";

        my $target="$viddir/$week";

        print "Move to folder $viddir/$week\n";

        move($source,$target);

        $move_count ++;

        }
    }
}

if ($oldest_week >= $current_week) {
  $delete_week = 52 + $current_week - $oldest_week;
} else {
    $delete_week = $current_week - $oldest_week;
}

@folders = ("D:/iSpy/video/Front Door/$delete_week",
            "D:/iSpy/video/Front Path/$delete_week",
            "D:/iSpy/video/Garden/$delete_week",
            "D:/iSpy/video/Lounge/$delete_week",
            "D:/iSpy/video/Patio/$delete_week",
            "D:/iSpy/video/Shed/$delete_week");

foreach (@folders)

{
    my $delete_dir=$_;

    opendir("curdir",$delete_dir)||die("Cannot open Directory!");

    my @names=readdir("curdir");

    foreach (@names) {

      my $name=$_;
      my $target = "$delete_dir/$name";
      my $upname=uc($name);
      my $pos_avi=index($upname,".AVI");
      my $pos_mp4=index($upname,".MP4");

      if ($pos_avi > 0 or $pos_mp4 > 0)  

        { 

        print "file to delete is $target\n";
        unlink $target;
        $delete_count ++;

        }
    }
}

my $mail_body = "$move_count moved";

if ($delete_count > 0) {
$mail_body = $mail_body . ", $delete_count deleted from folder $delete_week\n";   
}
print "$mail_body\n";

my %mail = (
                    To      => 'name@somewhere.com',
                    From    => 'iSpy@anywhere.com',   
                    Subject => 'Daily iSpy Recordings Move / Delete',
                    Message => $mail_body,
                    'content-type' => 'text/html; charset="iso-8859-1"',
                    'X-Mailer' => "Mail::Sendmail version $Mail::Sendmail::VERSION",
                    );

$mail{Smtp} = 'smtp.anywhere.com';

if (sendmail %mail) { print "Mail sent OK.\n\n" }
else { print "Error sending mail: $Mail::Sendmail::error \n" }

আমার নির্দিষ্ট কেস অনুসারে উভয়কেই টুইট করা দরকার, তবে আমি নিশ্চিত না যে কীভাবে একটিতে সম্পাদনা করব।


বিদ্যমান স্ক্রিপ্টগুলির সাথে কী ভুল?
ডেভিডপস্টিল

সেমিডি উইন্ডোটি কেবল তাত্ক্ষণিকভাবে খোলে এবং বন্ধ হয়। আমি ফাইলটি এক্সটেনশনগুলি। এমপি 3 হওয়া উচিত তা বিবেচনায় নিতে স্ক্রিপ্টটি সম্পাদনা করেছি (ওপিতে সেই এক্সটেনশনটি যুক্ত করতে ভুলে গিয়েছি, তবে এটি সংশোধন করেছি)।
নির্মলতা_লাইফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.