概要

Tera Termを操作するためのPowerShell関数を作成します。この関数は、Tera Termマクロ(*.ttl)ファイルを実行し、特定のコマンドを送信する機能を提供します。

アウトライン

  1. プロジェクトフォルダの構成
  2. 関数の作成
  3. サンプルスクリプト

プロジェクトフォルダの構成

📂TeraTermAutomation
┣ 📂Modules
┃ ┗ 📜TeraTermHandler.psm1
┣ 📂Scripts
┃ ┗ 📜SampleScript.ps1
┗ 📜App.ps1

ファイルアウトライン

Modules/TeraTermHandler.psm1

# モジュールのインポート
Import-Module "$PSScriptRoot\\\\Modules\\\\TeraTermHandler.psm1"

# Tera Termのマクロファイルを作成する関数
Function New-TeraTermMacro {
    param (
        [string]$FilePath,
        [string[]]$Commands
    )
    $macroContent = $Commands -join "`r`n"
    Set-Content -Path $FilePath -Value $macroContent
}

# Tera Termのマクロファイルを実行する関数
Function Invoke-TeraTermMacro {
    param (
        [string]$MacroFilePath,
        [string]$TeraTermPath = "C:\\\\Program Files (x86)\\\\Tera Term\\\\ttermpro.exe"
    )
    Start-Process -FilePath $TeraTermPath -ArgumentList "/M=$MacroFilePath"
}

Scripts/SampleScript.ps1

# モジュールのインポート
Import-Module "$PSScriptRoot\\\\..\\\\Modules\\\\TeraTermHandler.psm1"

# マクロファイルのパス
$macroFilePath = "$PSScriptRoot\\\\..\\\\MacroFiles\\\\sampleMacro.ttl"

# マクロコマンドの作成
$commands = @(
    "connect '192.168.1.1:22 /ssh /auth=password /user=username /passwd=password'",
    "wait '$'",
    "sendln 'ls -al'",
    "wait '$'",
    "sendln 'exit'"
)

# マクロファイルの作成
New-TeraTermMacro -FilePath $macroFilePath -Commands $commands

# マクロファイルの実行
Invoke-TeraTermMacro -MacroFilePath $macroFilePath

App.ps1

# モジュールのインポート
Import-Module "$PSScriptRoot\\\\Modules\\\\TeraTermHandler.psm1"

# サンプルスクリプトの実行
& "$PSScriptRoot\\\\Scripts\\\\SampleScript.ps1"

説明

  1. TeraTermHandler.psm1 モジュールは、Tera Termマクロファイルを作成し、実行するための関数を定義しています。
  2. SampleScript.ps1 スクリプトは、Tera Termを使用してリモートサーバーに接続し、コマンドを実行するサンプルを示しています。
  3. App.ps1 は、全体のエントリーポイントとなるスクリプトで、サンプルスクリプトを実行します。