【TeraTermマクロ】踏み台Ciscoスイッチから別Ciscoスイッチにtelnetログインしてshowログを採取する方法（showコマンド結果ごとに各ログに記録）

【事前準備】
・teraterm.exeを起動したら1から順番に展開されデフォルトで設定を進行していき「追加タスクの選択」で「.ttlファイルをttpmacro.exeに関連付ける」にチェックを入れること
・teratermの送信遅延設定をどちらも0にしないこと
・teratermログの自動採取を解除すること
・ttlファイル・commandテキスト・hostlistテキストは同じフォルダ内に置くこと
・ログを生成するフォルダの場所は事前に把握しておくこと
・別テキストに以下２つを用意
「command.txt」
show running-config
show logging
show version
など、表示結果が欲しいコマンド
「hostlist.txt」
1.1.1.254
1.1.1.253
1.1.1.252
1.1.1.251
など、ログインしたいホストアドレス


■TTLファイル説明■
＊ファイルの書き直しは拡張子をtxtに直して修正する
＊踏み台機器にコンソールで接続しteratermの「コントロール」→「マクロ」で開始
＊enableとVTYパスワードが全台同じ想定

■TXTファイル説明■
＊コマンド＆ホストリストは一覧の最終行で改行禁止（最終行の下に行を作らない）

--------------------------
マクロここから↓↓↓
--------------------------
	;■■■■■■■■■■パスワード■■■■■■■■■■		
	PASSWORD='hoge'		
	;↑全スイッチ共通のパスワード想定		
	;■■■■■■■■■■■■■■■■■■■■■■■■■		
			
	sendln ''		
	wait '>'		
	sendln 'en'		
	wait 'Password:'		
	pause 2		
	sendln PASSWORD		
	wait '#'		
	pause 2		
	sendln 'terminal length 0'		
	wait '#'		
	sendln ''		
	wait '#'		
			
	sendln 'show running-config | inc hostname'		
	wait 'hostname'		
	recvln		
	strcopy inputstr 1 8 Host_Name		
	;＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊		
	;※↑show runのhostnameから始まる行で「hostname」のあと1～8文字目をHost_Nameとして使用する		
	;文字数が違うなら修正して使用する		
	;＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊		
			
	fileopen FHcom 'command.txt' 0		
	while 1		
		filereadln FHcom comline	
			if result = 1 then
			break
			endif
			
			COMMAND = comline
			
			getdate DATE '_%Y-%m%d-%H%M%S.log'
			filename = Host_Name
			strconcat filename '_'
			strconcat filename COMMAND
			strconcat filename DATE
			
			pause 2
			sendln ''
			wait '#'
			
		logopen filename 0 0	
			
			sendln COMMAND
			wait '#'
			pause 2
			sendln ''
			wait '#'
			pause 2
			
		logclose	
	endwhile		
			
	fileclose FHcom		
	sendln ''		
	wait '#'		
			
	;■■■■■■■■■■■■■■■■■■■■■■■■■		
	;★★★★★★★★次のスイッチにtelnet★★★★★★★★		
	;■■■■■■■■■■■■■■■■■■■■■■■■■		
			
	fileopen FHtelnet 'hostlist.txt' 0		
	:telnetloop		
	filereadln FHtelnet telnetline		
	if result goto telnetclose		
			
	TELNET = telnetline		
			
	pause 2		
	sendln 'telnet ' TELNET		
	wait 'Password:'		
	pause 2		
	sendln PASSWORD		
	wait '>'		
	sendln 'en'		
	wait 'Password:'		
	pause 2		
	sendln PASSWORD		
	wait '#'		
	sendln 'terminal length 0'		
	wait '#'		
	sendln ''		
			
	sendln 'show running-config | inc hostname'		
	wait 'hostname'		
	recvln		
	strcopy inputstr 1 8 Host_Name		
	;＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊		
	;※↑show runのhostnameから始まる行で「hostname」のあと1～8文字目をHost_Nameとして使用する		
	;文字数が違うなら修正して使用する		
	;＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊		
			
	fileopen FHcom2 'command.txt' 0		
	while 1		
		filereadln FHcom2 comline	
			if result = 1 then
			break
			endif
			
			COMMAND = comline
			
			getdate DATE '_%Y-%m%d-%H%M%S.log'
			filename = Host_Name
			strconcat filename '_'
			strconcat filename COMMAND
			strconcat filename DATE
			
			pause 2
			sendln ''
			wait '#'
			
		logopen filename 0 0	
			
			sendln COMMAND
			wait '#'
			pause 2
			sendln ''
			wait '#'
			pause 2
			
		logclose	
	endwhile		
			
	fileclose FHcom2		
	sendln ''		
	wait '#'		
	pause 2		
	sendln 'exit'		
	wait '#'		
			
	goto telnetloop		
	:telnetclose		
	fileclose FHtelnet		
			
	pause 2		
	sendln ''		
	wait '#'		
	sendln 'exit'		
			
	end		


--------------------------
マクロここまで↑↑↑
--------------------------