Log.log(work)

いろんな作業メモ

一時停止は大事

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