へっぽこエンジニアの覚え書き

主に、バッチとTeraTermマクロのことについて書きます。

バッチでTera Termマクロをたたくお話

前回のバッチでTera Termマクロをたたくお話しに続いてのお話しです。

マクロのたたき方がわかったところでどう使うのかが問題なわけです。

もう少し有益な書き方をします。

 

@echo off

setlocal enabledelayedexpansion

choice

set choice =

echo 処理を続けますか?

set /p choice="[Y][N]を入力してください[%choice%]:"

 

if /i !choice! == N goto end

if /i !choice! == Y goto start

 

goto choice

 

:end

echo 処理を終了します

exit

 

:start

set choicea=

echo どのログを取りますか?

set /p choicea="[1:自宅][2:カフェ][3:職場]を選択してください。[%choicea%]:"

if /i !choicea! == 1 goto jitaku

if /i !choicea! == 2 goto cafe

if /i !choicea! == 3 goto shokuba

goto start

 

:jitaku

set choicea="自宅"

goto kidou

:cafe

set choicea="カフェ"

goto kidou

:shokuba

set choicea="職場"

goto kidou

 

:kidou

set test_result=20180101_20181231/03

for %%i in (%~dp0../*.ttl) do (

start "" "C:\Program Files (x86)\teraterm\ttermpro.exe" %%i %%test_result% %choicea%

timeout 2 > nul

)

 

解説

echo どのログを取りますか?の選択のところで[1:自宅][2:カフェ][3:職場]のうちひとつを選択すると、choicea変数の中に自宅かカフェか職場という文字列がセットされます。

それと、今回はなにも選択することなくtest_resultに20180101_20181231\03という変数がセットされています。

これは20180101_20181231\03というディレクトリなので、変数とはいいつつもこのバッチを動かす時期には03というディレクトリを使うのでしょう。保存先とか。もちろん、上のようにchoiceしてもいいですし、別記事になりますが入力させてもいいと思います。

入力すると間違えた場合に間違えたまま全てのマクロが実行されてしまうので、最初から値がわかっている(決まっている)のであればこのような書き方もアリかなと思います。

test_resultというものがTera Termマクロがおそらくディレクトリとして使うのではないでしょうか。

これら2つの変数を一つ上の階層にあるTeraTermマクロに渡しながら、そのフォルダ内の.ttlファイルを開いていくという流れです。