概要
テキストボックスに、AS/400 コマンドを入れて実行ボタンを押すと、バッチ実行します。
複数コマンドも順番に実行します。
バッチ処理のテストの時に、エミュレータを1画面確保しなくても良しです。
テキストボックスに、AS/400 コマンドを入れて実行ボタンを押すと、バッチ実行します。
複数コマンドも順番に実行します。
バッチ処理のテストの時に、エミュレータを1画面確保しなくても良しです。
このページに書かれている事を実行して、何が起こっても私は知りません。
まぁ、このページに到達された方なら大丈夫でしょうけど(^o^)。
スクリプト re975001.hta の固定値をご自分の環境に合わせて変更し、起動して下さい。
上のテキストボックスには、AS/400 コマンドを改行で区切って好きなだけ入れて、実行ボタンを押して下さい。
下のテキストボックスには、実行コマンドとエラーメッセージが出ます。
正常終了時のメッセージ(コピー件数等)は出ません。
最初にライブラリリストの設定する事も出来ます。
実行は1ジョブですが、他の人と同時に実行した時にどうなるかは、未検証です。
iSeries Access とか Client Access は、自力でインストールして下さい。
[re975001.hta:ここから]====================================================================== <html> <head> <HTA:APPLICATION APPLICATIONNAME="AS/400 コマンド実行" ICON="winmine.exe" BORDER="dialog" SCROLL="no" /> <style type="text/css"> <!-- body,select,input,td { font-family : monospace; font-size : 100%; } h1 { margin-top : 0.5em; padding-top : 0.2em; padding-bottom : 0.2em; margin-bottom : 0.2em; padding-left : 1em; color : #3333ff; background-color : #99ffff; font-size : 130%; } textarea.cmd_list { font-family : monospace; textarea.log_list { font-family : monospace; } input.text { width : 8em; } input.button { font-size : 80%; } p { margin-top : 0 em; padding-top : 0.5 em; padding-bottom : 0.5 em; margin-bottom : 0 em; } span.UL { text-decoration : underline; } --> </style> </head> <body onload="S_onload_proc()"> <form id="form_main" onsubmit=""> <h1 id="page_title"></h1> <table><tr> <td> <select name="connect_AS" size="1" accesskey="a" > <option value="192.168.100.100" selected>自社</option> <option value="192.168.100.110" >客先</option> </select> </td> <td><input class="text" name="connect_user" accesskey="u" /></td> <td><input class="text" name="connect_pass" accesskey="w" type="password" /></td> </tr></table> <table><tr> <td> <textarea class="cmd_list" id="AS_commands" rows="14" cols="80"> # ASコマンドをを改行で区切って入れて下さい。右端で折り返しても、改行を入れていない場合は、1コマンド扱いとなります。 # 単一ジョブで連続実行されるので、ライブラリリストの設定等も有効です。 # また、行の先頭が『#』の場合、その行は実行されません。 # 小文字は、勝手に大文字に変えちゃいます。 </textarea> </td> <td> <textarea class="log_list" id="Init_LibL" rows="14" cols="10"> QTEMP DTALIB PGMLIB QGPL </textarea> </td> </tr></table> <p class="cmdopt"> <input name="Set_LibL" id="Set_LibL" type="checkbox" accesskey="l" /><label for="Set_LibL">(<span class="UL">L</span>)最初にライブラリリストを変更する。</label> <input name="Err_Stop" id="Err_Stop" type="checkbox" accesskey="s" /><label for="Err_Stop">(<span class="UL">S</span>)エラー発生時点で止める。</label> <br> <input class="button" type=button onclick="S_AS_commands_check()" value="(Q)コマンドの実行" accesskey="q" /> <input class="button" type=button onclick="S_AS_commands_clear()" value="(E)コマンドのクリア" accesskey="e" /> <input class="button" type=button onclick="S_result_clear()" value="(D)実行結果のクリア" accesskey="d" /> </p> <textarea class="log_list" id="results" rows="20" cols="94"></textarea> </form> <script language="VBScript"> option explicit Const C_title_text = "AS/400 コマンド実行" Const C_initial_width = 710 Const C_initial_height = 675 Const C_DFT_AS_SYSTEM = "192.168.100.100" Const C_DFT_AS_UID = "USER" Const C_DFT_AS_PWD = "PASS" dim L_AS400,L_AS_CMD dim L_ADO_con dim rt,i dim LA_commands() dim LA_Libl() dim L_constr '-------------------------------------------------------------------------------- '実際のコマンドの実行 sub S_execute_command() dim L_conarray dim LA_temp_Libl,L_temp_Lib dim j dim L_cmd_str,L_Libl_str '1.AS/400接続 Set L_AS400 = createobject("cwbx.AS400System") L_AS400.define document.all("connect_AS").value L_AS400.UserID = document.all("connect_user").value L_AS400.Password = document.all("connect_pass").value Set L_AS_CMD = createobject("cwbx.Command") Set L_AS_CMD.system = L_AS400 On Error Resume Next '初期ライブラリリストの設定 if document.all("Set_LibL").checked and document.all("Init_LibL").value <> "" then L_Libl_str = "" 'オブジェクト名配列の作成:LA_objects LA_temp_Libl = Split(document.all("Init_LibL").value,vbcrlf) for i = 0 to UBound(LA_temp_Libl) 'それぞれのメンバー毎の処理 L_temp_Lib = trim(LA_temp_Libl(i)) if ( ( L_temp_Lib <> "" ) and ( left(L_temp_Lib,1) <> "#" ) ) then L_Libl_str = L_Libl_str & " " & L_temp_Lib end if next if L_Libl_str <> "" then '実際のライブラリリストの変更 L_cmd_str = "CHGLIBL (" & L_Libl_str & ")" S_add_result L_cmd_str '結果メッセージの表示 L_AS_CMD.run L_cmd_str If Err.Number <> 0 Then S_add_result Err.Description '結果メッセージの表示 Err.Clear if document.all("Err_Stop").checked then Exit sub end if end if end if for i = 0 to UBound(LA_commands) 'それぞれのメンバー毎の処理 S_add_result LA_commands(i) '結果メッセージの表示 L_AS_CMD.run LA_commands(i) If Err.Number <> 0 Then S_add_result Err.Description '結果メッセージの表示 Err.Clear if document.all("Err_Stop").checked then Exit sub end if next On Error Goto 0 end sub '-------------------------------------------------------------------------------- '『コマンドの実行』ボタン押下時の処理 Sub S_AS_commands_check() dim LA_temp_commands,L_temp_command dim j if document.all("AS_commands").value <> "" then 'オブジェクト名配列の作成:LA_objects LA_temp_commands = Split(document.all("AS_commands").value,vbcrlf) redim LA_commands(UBound(LA_temp_commands)) j = -1 for i = 0 to UBound(LA_temp_commands) 'それぞれのメンバー毎の処理 L_temp_command = trim(LA_temp_commands(i)) if ( ( L_temp_command <> "" ) and ( left(L_temp_command,1) <> "#" ) ) then j = j + 1 LA_commands(j) = UCase(L_temp_command) end if next redim Preserve LA_commands(j) if j >= 0 then '実際のコマンドの実行 S_execute_command() else S_OK_msg "実行するコマンドを入力して下さい。" end if else S_OK_msg "実行するコマンドを入力して下さい。" end if end sub '-------------------------------------------------------------------------------- sub S_onload_proc() '初期値設定 document.title = C_title_text document.all.page_title.innerText = C_title_text rt = window.resizeTo(C_initial_width,C_initial_height) document.all("connect_AS").value = C_DFT_AS_SYSTEM document.all("connect_user").value = C_DFT_AS_UID document.all("connect_pass").value = C_DFT_AS_PWD end sub '-------------------------------------------------------------------------------- sub S_add_result(P_msg) dim L_time,L_time_text L_time = time L_time_text = right("00" & datepart("h",L_time),2) & ":" & right("00" & datepart("n",L_time),2) & ":" & right("00" & datepart("s",L_time),2) document.all("results").value = document.all("results").value & L_time_text & " " & P_msg & vbcrlf end sub '-------------------------------------------------------------------------------- sub S_OK_msg(P_msg) msgbox P_msg,0,C_title_text end sub '-------------------------------------------------------------------------------- sub S_result_clear() document.all("results").value = "" end sub sub S_AS_commands_clear() document.all("AS_commands").value = "" end sub </script> </body></html> [re975001.hta:ここまで]======================================================================