サーバー上のファイルの存在有無をチェックする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を代入する仕様になっています。

スポンサーリンク