Multi Commander - 파일/폴더이름 끝에 날짜 붙이기 Script

알림
|
X

페이지 정보

작성자 쭐량 162.♡.179.126
작성일 2024.04.04 11:28
755 조회
4 추천

본문

Total Commander와 유사하나 무료여서 Multi Commander를 사용중입니다.

자주쓰는 명령을 아래에 Button으로 둘수있는데 업무상 파일뒤에 날짜를 붙이는 행위(?)를 많이하게되서

인터넷을 뒤지다가 발견하고 네자리 확장자에 대응할 수 있게 수정해서 사용중입니다.

여러파일을 한번에 선택해도 날짜붙이기 가능해서 편리합니다.


--- 추가팁 ---

기본: 일기장_20240401.docx 파일을 선택해서 스크립트를 수행하면 일기장_20240405.docx로 바뀌게 됩니다.

하지만! 일기장_20240401.docx를 같은 폴더내 복붙하여 일기장_20240401 - Copy.docx라는 파일을 생성하고 
일기장_20240401 - Copy.docx 파일에 대해 스크립트를 수행하면 " - Copy"가 붙어있는 파일임을 인지하여
일기장_2024040
5.docx라는 이름으로 변경해주게 됩니다.

" - Copy"부분은 영문 윈도우 기준으로 스크립트를 짜둬서 그러합니다. 한국어 윈도우라면 "- 복사본(?)"으로 수정하여 사용하시면 됩니다.


Screenshot 2021-05-12 092558.png


Screenshot 2021-05-12 092655.png



function MakeNewName($fbase, $fext)

{

   @var $now = GetTime();

   @var $date = FormatDate( "yyyyMMdd" , $now );



   // Append date to base

   $fbase = $fbase + "_" + $date;


   // Prepend date to base

   //$fbase = $date + " " + $fbase;


   return $fbase + $fext;

}


function main()

{

   Log(0, 10, "-------------- Script Start --------------" );

   @var $logprefix = "scMultiRename: ";

   @var $i;

   @var $filebase;

   @var $fileext;

   @var $resultsstr = "";

   @var $resultsarr[];

   @var $arrfullpath = GetSelectedPaths();

   @var $arr = GetSourceSelectedFileNames();

   @var $count = arrayCount($arr);


   if ($count == 0)

   {

      Log(0, 10, $logprefix + "no files selected, exiting");

   }

   else

   {   

      for($i = 0; $i < $count; $i++)

      {

         //Log(0, 10, $logprefix + "Full path:" + $arrfullpath[$i]);

         @var $dotpos = max(StrRegExpFind($arr[$i], "\....$" ),StrRegExpFind($arr[$i], "\.....$" ));



if ($dotpos == -1)

         {

            $filebase = $arr[$i];

            $fileext = "";

         }

         else if (StrSub($arr[$i], $dotpos-8, 8) > 20000000)

         {

            $filebase = StrSub($arr[$i], 0, $dotpos-9);

            $fileext = StrSub($arr[$i], $dotpos, -1);

         }

else if (StrSub($arr[$i], $dotpos-7, 7) == " - Copy")

         {

            $filebase = StrSub($arr[$i], 0, $dotpos-16);

            $fileext = StrSub($arr[$i], $dotpos, -1);

         }

else

         {

            $filebase = StrSub($arr[$i], 0, $dotpos);

            $fileext = StrSub($arr[$i], $dotpos, -1);

         }

         arrayAdd($resultsarr, MakeNewName($filebase, $fileext));

         //Log(0, 10, $logprefix + "\"" + $arr[$i] + "\" --> " + $resultsarr);

         $resultsstr = $resultsstr + $arr[$i] + " -->\r\n" + $resultsarr[$i] + "\r\n";

      }

      @var $msganswer = MessageBox("Proceed with rename?", $resultsstr, 1);

      if ($msganswer == 1)

      {

         Log(0, 10, $logprefix + "[Ok] renaming...");

         for($i = 0; $i < $count; $i++)

         {

            @var $newname = $resultsarr[$i];

            Log(0, 10, $logprefix + "Renaming:[" + $arrfullpath[$i] + "] to [" + $newname + "]");

            MC.Filesystem.Rename FILE="{$arrfullpath[$i]}" NEWNAME='{$newname}'

         }

      }

      else

      {

         Log(0, 10, $logprefix + "[Cancel] not renaming...");

      }

   }

   Log(0, 10, "-------------- Script Done --------------" );

}

main();

댓글 5 / 1 페이지

마루치님의 댓글

작성자 마루치 (141.♡.86.60)
작성일 04.04 11:58
스크랩합니다! 감사합니다!

네버다이님의 댓글

작성자 no_profile 네버다이 (172.♡.223.70)
작성일 04.04 12:09
유용한 정보 감사합니다.

낮은언덕님의 댓글

작성자 no_profile 낮은언덕 (172.♡.122.34)
작성일 04.04 12:42
오 스크랩했어요. 감사합니다.

tb99님의 댓글

작성자 tb99 (162.♡.118.53)
작성일 04.04 13:21
쓰시는 분이 있으시군요. ㅎㅎ
저도 소싯적에 노턴 커맨더부터 M dir 까지 썼었는데요. 최근까지 멀티 커맨더 쓰다가 이제는 free commander로 갈아 탔습니다. 하지만 공유 잘 봤습니다~

hamoni님의 댓글

작성자 hamoni (162.♡.118.126)
작성일 04.04 22:12
감솨,
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색