클로즈업 프로그램이 자동으로 매크로에 로그인합니다.ttl
10617 단어 TeraTerm 매크로TeraTermMacro
Linux Unix에 얽매이지 않고 플랫폼 매크로 로그인을 사용할 수 있는 프로그램을 만들었다.
이번 콘텐츠.
디렉토리 구조
Qiita에 절차를 공개했다.
※ 이 페이지의 맨 아래에 프로그램이 붙어 있습니다. 최신판은 Qita를 참조하세요.
위의 디렉토리 구조를 사용하여 확장할 수 있습니다.
별품
맹독 자체
login20160901.태블릿 매크로로ttl 파일을 읽고 실행해야 합니다.
그때 플랫폼 버전은 4.74 이후가 필요하다.
log 디렉토리
목록만 있으면 돼.
※ 자동 로그 출력 목록
파일 이름: 년 월 일 시 분 초teraterm.log
데이터 카탈로그
목록만 있으면 돼.
※ 로그인 아이디와 비밀번호를 숨긴 파일의 저장 위치
파일 이름: password.dat
데이터 카탈로그
dat 디렉토리의 datlogin 입니다.txt 파일을 만들어야 합니다.
다음은 텍스트 파일 내용의 예이다
첫 번째 줄: 제목 (첫 번째 문자가 있어야 하는 ★ 기호)
8행: 1행의 머리글과 연결(2자 이후에는 동일)
9행: 로그인 대상 IP 주소(HOSTS 이름도 사용 가능)
10줄: 로그인지의 로그인 이름을 끌어내는 키(로그인 이름은 필요 없음)
11줄: 로그인 비밀번호를 뽑는 키(비밀번호 필요 없음)
행 12: 0 고정
13행: 목적지에 로그인한 문자 코드(1 작성 후 문자 코드 지정)
※ 문자 코드에 구애받지 않고 0(SJIS가 됨)만 작성.
※ 이번 매크로 프로그램은 EUC-jp, SJIS, UTF8 3종을 지원합니다.
참고: datlogin.txt 파일을 연 상태에서 매크로를 이동할 수 없습니다. 닫으십시오.
단계 사용
1. 매크로 파일 읽기
2. 로그인 서버 선택
※datlogin.txt 파일 ★ 기호가 있는 연속 줄을 읽습니다.
매크로 사용자는 시작 번호(두 번째 문자)를 입력하고 OK 버튼을 누릅니다.
3. 로그인 사용자 이름 입력
※datlogin.txt 파일에 쓸 문자열 (열 번째 줄) 을 표시합니다.
4. 로그인 비밀번호 입력
※datlogin.txt 파일에 쓰기 위한 문자열(11행)을 표시합니다.
5. 로그인 완료
■ 작업이 끝나면
로그 출력
log 디렉터리는 출력 로그에 속합니다.
※TERATERM.로그 출력 목적지가 INI 파일에 기록되지 않은 경우에만 해당됩니다.
■ 로그인 실패
오류 화면 표시, TERTAME 매크로를 종료...해야 합니다.
■프로그램
※ 20160903시간
login20160901.ttl
;***********************************************************************
;
;プログラム名:サーバ一覧からの選択後自動ログイン実施
;機能名 :テラタームログインマクロ
;ファイル名 :login20160901.tll
;文字コード :-
;機能概要 :サーバにテラタームを用いてログインするときに使用する.
; 一度ログインに成功した場合二度目以降は一覧から選ぶ
; だけでログインが完了する.
; ログイン先の文字コードも選択可能
;呼び出し形式:テラタームマクロから呼び出す
;戻り値 :キーボードからの入力を受け付ければ正常終了
; 入力を受け付けない場合バグがある.手動でテラタームごと終了すること.そしてマクロを直すか手動でログインし直す.
;
;ディレクトリ構造:
; テラタームマクロ(本ファイル).ttl
; |
; |---dat/
; | datlogin.txt ←ログイン用サーバ情報
; |
; |---data/
; | password.dat ←ログイン後に生成される
; |
; |---log/
; [年月日時分秒]_teraterm.log ←ログイン後に生成される
;
;作成者 :20160901 chesscommands
;改版履歴 :20160901 chesscommands 新規作成 R1.0
; :20160903 chesscommands インデント追加 R1.1
;
;***********************************************************************
getdir mcrodir_onDir
; ■ログインサーバを選択する
logintxtname = ''
makepath aaa mcrodir_onDir '¥dat¥datlogin.txt'
filesearch aaa
if 0 = result then
messagebox mcrodir_onDir 'debug'
messagebox 'file not' 'exit'
end
endif
mcrodir_datlogin = mcrodir_onDir
strconcat mcrodir_datlogin '¥dat'
setdir mcrodir_datlogin
fileopen fhandle 'datlogin.txt' 0
if 0 > fhandle then
messagebox 'file not' 'exit'
end
endif
show -1
txtTitleline = ''
txtline = ''
:loop
filereadln fhandle line
if 1 = result goto fclose
txtline = line
code2str starStr 33178
strmatch txtline starStr
if 0 < result then
strconcat txtTitleline txtline
strconcat txtTitleline #13#10
endif
goto loop
:fclose
fileclose fhandle
inputbox txtTitleline 'serverSelect'
str2int serverNumber inputstr
if 1 <> result then
exit
endif
mcrodir_datlogin = mcrodir_onDir
strconcat mcrodir_datlogin '¥dat'
setdir mcrodir_datlogin
fileopen fhandle 'datlogin.txt' 0
if 0 > fhandle then
messagebox 'file not' 'exit'
end
endif
txtTitleline = ''
txtline = ''
:loopSecond
filereadln fhandle line
if 1 = result goto fclose
txtline = line
str2int serverTitleLine txtline
if serverNumber = serverTitleLine then
goto loopexit
endif
goto loopSecond
:loopexit
filereadln fhandle rline
filereadln fhandle uline
filereadln fhandle pline
filereadln fhandle cline
filereadln fhandle eline
fileclose fhandle
mozjiicode = 'sjis'
str2int streline eline
if 1 = result then
if 1 = streline then
strlen eline
if 1 < result then
strcopy eline 2 result eeline
strcompare eeline 'EUC-JP'
if 0 = result then
mozjiicode = 'EUC'
endif
strcompare eeline 'Shift_JIS'
if 0 = result then
mozjiicode = 'SJIS'
endif
strcompare eeline 'UTF-8'
if 0 = result then
mozjiicode = 'UTF8'
endif
endif
endif
mozjiicode = 'SJIS'
endif
tellnet = ':23 /nossh /T=1 /NOLOG '
strconcat tellnet ' /KR='
strconcat tellnet mozjiicode
strconcat tellnet ' /KT='
strconcat tellnet mozjiicode
connectionserver = rline
strconcat connectionserver tellnet
connect connectionserver
; ■現在のリンク及び接続の状態を確認する
testlink
if 2 <> result then
messagebox 'link err' 'exit'
end
endif
showtt -1
; ■その他
enablekeyb 0
timeout = 5
getver version '4.74'
if 0 > result then
messagebox 'ver old' 'exit'
goto err_END
endif
goto gotoJump
:err_END
testlink
if 0 <> result then
closett
endif
end
:gotoJump
; ■ログを記録する
getdate logfileYmHHSlog '%Y%m%d%H%M%S_teraterm.log'
mcrodir_log = mcrodir_onDir
logtxtname = ''
strconcat logtxtname logfileYmHHSlog
strconcat mcrodir_log '¥log'
changedir mcrodir_log
logopen logtxtname 0 0 0 0 9
; ■パスワードファイルを読み込む
mcrodir_datFile = ''
mcrodir_datFile = mcrodir_onDir
strconcat mcrodir_data '¥data'
strconcat mcrodir_datFile mcrodir_data
setdir mcrodir_datFile
UsernamePrompt = 'login:'
UserIDname = 'ユーザ名('
strconcat UserIDname rline
strconcat UserIDname ')のKey('
strconcat UserIDname uline
strconcat UserIDname ')'
getpassword 'password.dat' UserIDname Username
PasswordPrompt = 'Password:'
PasswordKey = 'パスワード('
strconcat PasswordKey rline
strconcat PasswordKey ')のKey('
strconcat PasswordKey pline
strconcat PasswordKey ')'
getpassword 'password.dat' PasswordKey Password
wait UsernamePrompt
sendln Username
wait PasswordPrompt
sendln Password
settitle txtline
logpause
; ■1行取得
pause 2
sendln
flushrecv
sendln
recvln
waitregex '.*[^%]+.*[%]{1}.*' '.*[^$]+.*[$]{1}.*' '.*[^#]+.*[#]{1}.*' '[^.]*\$[^.]*' '[^.]*#[^.]*'
prompt = matchstr
if 5 < result then
messagebox 'err' 'exit'
goto err_END
endif
if 1 > result then
messagebox 'err' 'exit'
goto err_END
endif
sendln
strtrim prompt ''
flushrecv
sendln
wait prompt
if 1 <> result then
messagebox 'err' 'exit'
goto err_END
endif
;sendln ' set -o ignoreeof'
;sendln ' tabs -4'
;sendln ' alias hostname="uname -a"'
;sendln ' alias tarview="tar tvf "'
wait prompt
sendln
wait prompt
logstart
sendln
wait prompt
clearscreen 1
str2int strcline cline
if 1 = result then
if 1 = strcline then
strlen cline
if 1 < result then
strcopy cline 2 result ccline
sendln 'cd 'ccline
sendln
endif
endif
endif
str2int streline eline
if 1 = result then
if 1 = streline then
strlen eline
if 1 < result then
strcopy eline 2 result eeline
strcompare eeline 'EUC-JP'
if 0 = result then
callmenu 54011
callmenu 54111
endif
strcompare eeline 'Shift_JIS'
if 0 = result then
callmenu 54010
callmenu 54110
endif
strcompare eeline 'UTF-8'
if 0 = result then
callmenu 54013
callmenu 54113
endif
endif
endif
mozjiicode = 'SJIS'
endif
wait prompt
enablekeyb 1
sendln 'date'
showtt 1
Reference
이 문제에 관하여(클로즈업 프로그램이 자동으로 매크로에 로그인합니다.ttl), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/chesscommands/items/d6918ea379c802563639텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)