지정된 폴더에서 파일을 검색 후 특정 단어가 포함된 비디오(.mp4) 파일을 찾고 프로그램(ffmpeg.exe)을 실행하여 스트림을 재 조립하는 샘플 코드입니다.

* V0.7.0 이상 지원

var files = getFiles("e:\\temp\\테스트");
var paths = JSON.parse(files);

clearConsole();
showConsole(true);

for (index = 0; index < paths.length; ++index)
{
    var path = paths[index];

    //  전체 경로에서 디렉터리 경로를 찾는다.
    var slash = path.lastIndexOf("\\");
    //  파일명을 얻는다.
    var fileName = path.substring(1 + slash);

    //  파일명에서 확장명을 찾는다.
    var dot = fileName.lastIndexOf(".");
    if (-1 == dot) {
        continue;
    }

    //  파일명에서 이름과 확장명을 얻는다.
    var extension = fileName.substring(dot);
    fileName = fileName.substring(0, dot);

    if (-1 != fileName.indexOf("다시보기") && ".mp4" == extension)
    {
        //  ffmpeg.exe를 실행하여 스트림을 다시 조립한다.
        var processId = createProcess("e:\\temp\\movies\\ffmpeg.exe", "-i \"" + path + "\" -vcodec copy -acodec copy \"" + path.substring(0, 1 + slash) + fileName.replace("다시보기", "").trim() + extension + "\"");

        var result = waitForExit(processId, 0/*무한대기*/);

        if (0/*성공*/ == result)
        {
            //  원본 파일을 삭제한다.
            deleteFile(path);
        }
        else
        {
            console("[0x" + result.toString(16) + "] 변환 실패: " + path);
        }
    }
}

alert("변환이 완료됐습니다.");

지정된 폴더에서 파일을 검색 후 특정 단어가 포함된 비디오(.mp4) 파일을 찾고 프로그램(ffmpeg.exe)을 다중 실행하여 스트림을 재 조립하는 샘플 코드입니다.

* V0.7.0 이상 지원

*실행하는 프로그램의 최대 개수 제한 필요

var message = "";
var succeeded = 0, failed = 0;
var processes = {};
var files = getFiles("e:\\temp\\테스트");
var paths = JSON.parse(files);

for (index = 0; index < paths.length; ++index)
{
    var path = paths[index];

    //  전체 경로에서 디렉터리 경로를 찾는다.
    var slash = path.lastIndexOf("\\");
    //  파일명을 얻는다.
    var fileName = path.substring(1 + slash);

    //  파일명에서 확장명을 찾는다.
    var dot = fileName.lastIndexOf(".");
    if (-1 == dot) {
        continue;
    }

    //  파일명에서 이름과 확장명을 얻는다.
    var extension = fileName.substring(dot);
    fileName = fileName.substring(0, dot);

    if (-1 != fileName.indexOf("다시보기") && ".mp4" == extension)
    {
        //  ffmpeg.exe를 실행하여 스트림을 다시 조립한다.
        var processId = createProcess("e:\\temp\\movies\\ffmpeg.exe", "-i \"" + path + "\" -vcodec copy -acodec copy \"" + path.substring(0, 1 + slash) + fileName.replace("다시보기", "").trim() + extension + "\"");

        if (-1/*실행*/ == processId) {
            ++failed;
            message += getLastError() + "\n";
        }
        else {
            processes[processId] = path;
        }
    }
}

for (var processId in processes)
{
    var result = waitForExit(processId, 0/*무한대기*/);

    if (0/*성공*/ == result)
    {
        ++succeeded;
        //  원본 파일을 삭제한다.
        deleteFile(processes[processId]);
    }
    else
    {
        ++failed;
        message += "[0x" + result.toString(16) + "] " + processes[processId] + "\n";
    }
}
if (0 == failed) {
    message = "모든 작업이 완료됐습니다.";
} else if (0 < succeeded) {
    message = "일부 작업이 실패했습니다.\n\n" + message;
} else {
    message = "모든 작업이 실패했습니다.\n\n" + message;
}
alert(message);

텍스트 Editor 내 모든 파일명을 100개씩 가져와 수정한 후 다시 Editor로 기록하는 샘플 코드입니다.

* 파일명 내 속성 태그(<...>) 수정 주의

* 확장명 수정 시 사용할 수 없게 될 수 있으므로 주의

//  파일 개수를 얻는다.
var count = getFileCount();
if (0 == count) {
    alert("이름을 변경 할 파일이 없습니다.");
    return;
}

//  진행바 범위를 설정한다.
setProgressRange(0, count);

//  진행바를 화면에 보인다.
showProgress(true);

//  파일 개수 만큼 파일명을 변경한다.
for (index = 0; index < count && !isStop(); ) {
    var extension = "";
    //  지정한 인덱스에서 100개의 파일명을 얻는다.
    var json = getFileNames(index, 100);
    var fileNames = JSON.parse(json);

    for (file = 0; file < fileNames.length && !isStop(); ++file) {
        var fileName = fileNames[file];

        //  이름과 확장명을 분리한다.
        var dot = fileName.lastIndexOf(".");
        if (-1 != dot) {
            extension = fileName.substring(dot);
            fileName = fileName.substring(0, dot);
        }

        /*파일명을 수정한다.*/

        fileNames[file] = fileName + extension;
    }

    //  파일명을 기록한다.
    setFileNames(index, JSON.stringify(fileNames));

    //  진행바의 위치를 갱신한다.
    setProgress(index += fileNames.length);
}

//  작업 완료 메시지를 출력한다.
alert("파일명 변경이 완료됐습니다.");

//  진행바를 숨긴다.
showProgress(false);

아래 코드는 EasyRenamer 설치 시 기본적으로 제공되는 자바스크립트 코드 입니다.

로그 1만건을 파일에 기록하는 샘플 코드입니다.

try
{
    //  로그 파일을 오픈한다.
    openLog("e:\\log.txt");

    //  진행바의 범위를 설정하고 출력한다.
    setProgressRange(0, 10000);
    showProgress(true);

    //  1만건의 로그를 기록한다.
    for (count = 0; count < 10000 && !isStop(); ) {
        log("샘플 로그");
        setProgress(++count);
    }
}
catch (err)
{
    alert(err);
}
finally
{
    //  진행바를 숨긴다.
    showProgress(false);

    //  열려진 로그 파일을 닫는다.
    closeLog();
}

+ Recent posts