| 00004 98/02/06 01:35 | 同内容のログファイルを作るには |
| 投稿者 : 鈴木達也 | コメントを投稿する |
鈴木達也と申します。 パソコン通信のホストへの一回のアクセスで、同一内容のログファイルを二つ作る方 法がありませんでしょうか。 run,runsync,runsync2で、MS-DOSのcopyコマンドを使うのがもっとも簡単なような気 がするのですが、 run "copy a.txt b.txt" のようにしても、 runコマンドで指定したファイルの実行に失敗しました と怒られてしまいます。 秀termの終了後にバッチファイルなどで処理すれば良いのでしょうが、コンピュータ の素人にも使わせなくてはいけないものなので、なるべく、秀termのスクリプト内部 で処理したいのです。 よろしくお願いいたします。 |
| 00005 98/02/06 08:41 | RE:00004 同内容のログファイルを作るに |
| 投稿者 : 横島 忠夫 | コメントを投稿する |
こんにちは, 鈴木達也さん. >パソコン通信のホストへの一回のアクセスで、同一内容のログファイルを二つ作る方 >法がありませんでしょうか。 > >run,runsync,runsync2で、MS-DOSのcopyコマンドを使うのがもっとも簡単なような気 >がするのですが、 > >run "copy a.txt b.txt" > >のようにしても、 > >runコマンドで指定したファイルの実行に失敗しました > >と怒られてしまいます。 まず, スクリプトの先頭の方に 以下の一行を追加します. afterhangup Atoshimatsu ;電話を切った後の処理 そして Atoshimatsu には以下のようなことを書いておきます Atoshimatsu: chdir log ;ログのホルダーに移動 if(existfile("b.txt")) delfile "b.txt" ;b.txtが存在していれば削除する endif copyfile "a.txt", "b.txt" ;a.txtのコピー restoredir return これでOKだと思いますが.... よこしま |
| 00006 98/02/06 12:10 | (発言者削除) |
| 投稿者 : 鈴木達也 |
| 00007 98/02/06 12:22 | RE:00005 同内容のログファイルを作るに |
| 投稿者 : 鈴木達也 | コメントを投稿する |
鈴木達也です。 横島さん、早速のレスありがとうございました。 ご指摘の方法で試してみたところうまく行きました。 ところが、スクリプトを検討してみると、二つのログファイルを結合する必要が出て きました。具体的には、データの取得期間が月をまたぐ場合、先月分(例 9801.lo g)の後ろに今月分(9802.log)を追加したいのです。 秀termのコマンドには、こういったものはありませんでしたよね・・・ そこで、いろいろと試してみたのですが、runコマンド群の後ろにMS-DOSのバッチフ ァイルを指定すると、何とか動作しました。 例 runsync2 "filecopy.bat" filecopy.batの内容 copy a.txt+b.txt c.txt しかし、ファイルがひとつ増えてしまうのと、バッチファイルの安定性に少々不安が あります。comwin32といったwindowsネイティブのソフトも試してみましたがあまり うまく行きません。 そもそも、秀termのrunコマンド群からは、command.comの内部コマンドは直接指定で きないのでしょうか。そういった仕様なのでしょうか。 また、ここの会議室の趣旨からは外れるかもしれませんが、MS-DOSのコマンドライン でファイルのコピーができる外部コマンドをご存じないでしょうか。 よろしくお願いいたします。 |
| 00008 98/02/06 14:23 | openfile,readfile時の終了コードについて |
| 投稿者 : さいとう | コメントを投稿する |
スクリプト内でテキストファイルからデータを読みとりたいのですが 終了コードはどのように取り扱えば良いのでしょうか? どこかの変数に保存されているのでしょうか? もし、そうならばその変数名を教えて下さい。 |
| 00009 98/02/06 16:30 | RE:00007 同内容のログファイルを作るに |
| 投稿者 : EMiCC | コメントを投稿する |
はじめまして、EMiCCと申します。 >きました。具体的には、データの取得期間が月をまたぐ場合、先月分(例 9801.lo >g)の後ろに今月分(9802.log)を追加したいのです。 >また、ここの会議室の趣旨からは外れるかもしれませんが、MS-DOSのコマンドライン >でファイルのコピーができる外部コマンドをご存じないでしょうか。 type 9802.log >> 9801.log とやれば、9801.log = 9801.log + 9802.log ということになるはずです。 |
| 00010 98/02/06 18:13 | (発言者削除) |
| 投稿者 : 横島 忠夫 |
| 00011 98/02/06 18:16 | RE:00007 同内容のログファイルを作るに |
| 投稿者 : 横島 忠夫 | コメントを投稿する |
こんにちは, 鈴木達也さん. >ところが、スクリプトを検討してみると、二つのログファイルを結合する必要が出て >きました。具体的には、データの取得期間が月をまたぐ場合、先月分(例 9801.lo >g)の後ろに今月分(9802.log)を追加したいのです。 > >秀termのコマンドには、こういったものはありませんでしたよね・・・ 秀Termのスクリプトを拡張してくれるアプリがあります. 「秀まるおのマクロサーバ」というのがそれです. まず, これを「秀まるおのホームページ」からとってきて, macserv.exe を hideterm.exe と同じ場所において下さい. で以下のようにスクリプトを書けばいいです. ;ここから #Logpath == "c:\hideterm\log" ;<-ログのパス, 自分用に直す #file1 == #logpath + "\9801.log" #file2 == #logpath + "\9802.log" ddeinitiate "HideMacroServer", "FileService" ; <-DDE開始 if(no) run "macserv.exe" ddeinitiate "HideMacroServer", "FileService" endif ddeexecute "appendcopy " + #file1 + " " + #file2 ; <-ファイルの連結 return ; ddeexecute "exit" ;<-マクロサーバを終了する場合に必要 ;ここまで マクロサーバは起動しっぱなししておけば, いつでも使えるので exitはしない方がいいかもしれません. 大してメモリを使うわけでも ないので.... よこしま |
| 00012 98/02/06 18:33 | RE:00008 openfile,readfile時の終了コー |
| 投稿者 : 横島 忠夫 | コメントを投稿する |
こんにちは, さいとうさん. >スクリプト内でテキストファイルからデータを読みとりたいのですが >終了コードはどのように取り扱えば良いのでしょうか? >どこかの変数に保存されているのでしょうか? >もし、そうならばその変数名を教えて下さい。 ファイルのオープンの仕方の例です. ;ここから #file == "test.txt" #holder == "c:\MyDocument" ;<-test.txtの場所, 自分用に直す chdir #holder openfile #file ;<-ホルダーに移動してオープン if(no) restoredir return ;<-ファイルがなければカレントディレクトリを元に戻して止める endif restoredir ##i == 1 beginloop readfile #file, #line[##i] ;<-一行ずつ読む if(no) breakloop ##i = ##i + 1 endloop ##last == ##i - 1 closefile #file ;ここまで これで #line[1], ....., #line[##last] に各行の内容が格納されます. よこしま |
| 新規に投稿する |