TeraTerm マクロでハマった話

TeraTerm マクロでハマった話

TeraTermマクロを作成する際にハマって何時間も費やしてしまっため、備忘録として残しておきます。

何がしたかったか

TeraTermマクロを使用してEsxiのバックアップのマクロを作成していました。
その途中でvmidを取得するためのsendlnで以下コマンドをマクロで表現しようと思ったのですが、
(アポストロフィ)がうまくいかず苦戦しました。

”vim-cmd vmsvc/getallvms |grep ‘[仮想マシン名]’ > test.txt”

TeraTermマクロについてはこちら

最初に

最初にマクロを記載します。

  1. GETVMID = ‘vim-cmd vmsvc/getallvms’
  2. VERSION = ‘[仮想マシン名]’
  3. strconcat GETVMID ‘ |grep ‘
  4. strconcat GETVMID “‘\”
  5. strconcat GETVMID VERSION
  6. strconcat GETVMID “‘”
  7. strconcat GETVMID ‘ > test.txt’
  8. sendln GETVMID

このマクロを実行するとGETMID内に”vim-cmd vmsvc/getallvms |grep ‘[仮想マシン名]’ > test.txt”

ハマった箇所

ハマった場所は4行目と6行目になります。
(アポストロフィ)をstrconcatを使って文字列を継ぎ足すときにアスキーコード(#$27)を使用したり色々試行錯誤しました。
しかし単純に”(ダブルクォーテーション)で囲ってしまえば問題なくつぎ足すことができます。

最後に

わかっていれば大したことはないのですが、いろいろ調べまわって時間がかかってしまいました。。