一時停止は大事
tera termで自動ログインしてファイル名を変更してからの行数カウント、というプログラムを作ったが、途中でエラーが発生してうまく動かなかった。
なんでやろー?と思ったらプロンプトが出てからコマンドを受けて実行する前に
次のコマンドが動いてしまっているのが原因ということが判明した。
↓×
connect COMMAND ;; ファイルが見つからないと怒られる sendln "cp -fp /home/test/files/origin1.dat /home/test/files/copy1.dat" sendln "wc /home/test/files/copy1.dat" recvln end
↓○
connect COMMAND pause 1 sendln "cp -fp /home/test/files/origin1.dat /home/test/files/copy1.dat" ;;1秒待つ pause 1 sendln "wc /home/test/files/copy1.dat" recvln end
pauseで一時停止させることでコピーがおわったあとにword countできるようになった。
コピーする対象ファイルが多かったり、重かったりして、
コピーするのにちょっと時間がかかるようならpauseをちょっと長めに設定する。
HOSTADDR = '192.168.xxx.xxx' USERNAME = 'user' PASSWORD = 'pass' COMMAND = HOSTADDR strconcat COMMAND ':22 /ssh /2 /auth=password /user=' strconcat COMMAND USERNAME strconcat COMMAND ' /passwd=' strconcat COMMAND PASSWORD connect COMMAND pause 3 ;; コピー sendln "cp -fp /home/test/files/origin1.dat /home/test/files/copy1.dat" sendln "cp -fp /home/test/files/origin2.dat /home/test/files/copy2.dat" sendln "cp -fp /home/test/files/origin3.dat /home/test/files/copy3.dat" sendln "cp -fp /home/test/files/origin4.dat /home/test/files/copy4.dat" sendln "cp -fp /home/test/files/origin5.dat /home/test/files/copy5.dat" pause 1 sendln "wc /home/test/files/copy1.dat" recvln pause 1 sendln "wc /home/test/files/copy2.dat" recvln pause 1 sendln "wc /home/test/files/copy2.dat" recvln pause 1 sendln "wc /home/test/files/copy2.dat" recvln pause 1 sendln "wc /home/test/files/copy2.dat" recvln pause 1 ;;マクロ終了 end