サーバー上のファイルの存在有無をチェックするTeraTermマクロをご紹介します。
ローカル上のファイルの存在有無チェックをするコマンドは「filestat」なのですが、普通に考えてローカル上の存在チェックしてもしょうがないですよね 笑(何のために存在しているコマンドなんだろうと思います。。。)
サーバー上のファイル存在チェックはシェルスクリプトの条件分岐と、sendln、waitlnの組み合わせで行うことができました。
;接続先ホスト HOSTADDR = '192.168.10.6' ;ユーザ名 USERNAME = 'test' ;パスワード設定 PASSWORD = 'testpass' ;チェック対象のファイル名 checkname = 'test.txt' ;接続コマンド作成 COMMAND = HOSTADDR strconcat COMMAND ':22 /ssh /2 /auth=password /user=' strconcat COMMAND USERNAME strconcat COMMAND ' /passwd=' strconcat COMMAND PASSWORD ;接続 connect COMMAND ;================================================ wait '$' sendln 'file="test.txt"; [ -f "$file" ] && echo "==OK==" || echo "==NG=="' wait '==' waitln '==OK==' '==NG==' if result = 2 then messagebox 'ファイルが存在しない' 'ファイルが存在しない' elseif result = 1 then messagebox 'ファイルが存在する' 'ファイルが存在する' endif ;================================================ ;マクロ終了 end
sendlnの「test.txt」がチェック対象のファイルになります。ログインしたカレントディレクトリに「test.txt」というファイルが存在しているかチェックし、あれば「==OK==」を出力し、なければ「==NG==」を出力します。
それを、waitlnで待つことになります。==OK==(ファイルが存在する場合)であれば、変数resultに1を代入し、==NG==(ファイルが存在しない場合)であれば、変数resultに2を代入する仕様になっています。