【HTA】 FileSystemObjectでテキスト処理 & Jscriptの正規表現で置換処理

プログラミング・Web開発カテゴリを表すパンダのイラスト プログラミング・Web開発

FileSystemObjectでテキストファイルを1行ずつ入出力させ、JScriptの正規表現で置換処理を行うHTA(HTML Application)のサンプルコードです。

Windows環境で動作し、追加のランタイムをインストールすることなくテキストのバッチ処理や簡易的な置換を試すことができます。

前提条件・動作環境

  • Windows OS(Internet Explorerのコンポーネントを利用するため現代のWindows環境では制限がある場合があります)
  • ローカル環境でのテスト用

HTAソースコード

以下のコードをコピーし、拡張子を .hta (例: fso_replace.hta)として保存して実行してください。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>【HTA】 FileSystemObjectでテキスト処理 & Jscriptで置換処理</title>
<HTA:APPLICATION 
    ID="FileSystemObjectRep" 
    APPLICATIONNAME="Rep"
    SCROLL="yes"
    SINGLEINSTANCE="yes"
>
</head>
<script id="lang_js" language="jscript" type="text/jscript">
// FileSystemObject
var FSO = new ActiveXObject("Scripting.FileSystemObject");

// 定数
var ForReading = 1;
var ForWriting = 2;
var ForAppending = 8;

// このファイルが置かれているフォルダのパス名を取得する
function GetBaseFolder(){
    return FSO.GetFolder(".");
}

function Exp()
{
    var IN_FILE = GetBaseFolder() + "\\in.txt";
    var OUT_FILE = GetBaseFolder() + "\\out.txt";

    var s, r, re;
    s = "";
    r = "";

    document.getElementById('ReadFileName').innerText = "インプット=" + IN_FILE;
    document.getElementById('WriteFileName').innerText = "アウトプット=" + OUT_FILE;

    if(FSO.FileExists(OUT_FILE)){
        FSO.DeleteFile(OUT_FILE);
    }

    var RTS = FSO.OpenTextFile(IN_FILE, ForReading, true);
    var WTS = FSO.OpenTextFile(OUT_FILE, ForWriting, true);

    while(!RTS.AtEndOfStream){
        s = RTS.ReadLine();
        
        // JScriptの正規表現による置換処理(例: 文字 'a' を 'Q' に置換)
        re = /(a)/g;
        r = s.replace(re, "Q");

        WTS.Write(r);
        
        if(RTS.AtEndOfStream){
            break;
        }
        WTS.Write("\r\n");
    }

    RTS.Close();
    WTS.Close();
    
    document.getElementById('content').innerText = "処理が完了しました。";
}
</script>
<body onload="Exp()" style="padding: 20px; font-family: sans-serif;">
    <h3>HTA テキスト置換処理</h3>
    <div id="ReadFileName"></div>
    <div id="WriteFileName"></div>
    <div id="content" style="margin-top: 10px; color: green; font-weight: bold;"></div>
</body>
</html>

使い方と注意事項

  • 同一フォルダ内に in.txt という名前のテキストファイルを配置して実行してください。
  • 実行すると自動的に out.txt が生成され、文字の置換結果が出力されます。
  • in.txt が存在しない場合はエラーになるため、事前にテスト用のファイルを作成してください。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月12日

  • 変更HTMLタグとインデントの乱れを解消し、見やすいコードブロック形式へ修正しました。
  • 追加HTAの動作要件や実行手順についての説明を追加しました。

文書情報

記事タイトル
【HTA】 FileSystemObjectでテキスト処理 & Jscriptの正規表現で置換処理
作成日
更新日
Source URL
https://papanda925.com/?p=634

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました