概要
テキストボックスに、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:ここまで]======================================================================