(現在 過去ログ31 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■4901 / inTopicNo.1)  イベントから「システム」コマンドは使えないので……
  
□投稿者/ Kanasy.Ge -(2009/07/04(Sat) 11:59:01)
     お智恵を拝借させて下さい。

     LZH圧縮をルーチンワークで行わせるために、"Lha32.exe" を使い、概ね次のような一括処理で走らせています。

    ------某BackUp.cmd-------
    ・・・・・・
    &選択ファイル名="某"+#STR(&年*10000+&月*100+&日)+"bak.LZH"
    システム "Lha32.exe","u -al -jpl -o2 F:\某\"+&選択ファイル名+" E:\某々\*.*", 戻り値=&実行リターン,&秒
    ・・・・・・
    -------------------------
    (補足)この場合は、圧縮の対象が「*.*」であるため、あえて別フォルダからの別cmdの実行と云うことに意味を持たせています。
    (補足2)バッチファイルに "某"+#STR(&年*10000+&月*100+&日)+"bak.LZH" のようなこととか諸々を記述するスキルが私にはないので、cmdをバッチ代わりに使っています(^^;)。

     さて今回は別件で、圧縮対象が「*.csv」等であることも含めて、動作中の wfm-kev からLZH圧縮処理をさせる必要がでてきました。しかるに「システム」コマンドはイベントからは使えません。で、どうしたものか?と。
     一案としては、ボタンの「シェル実行」で桐をもう1本立ち上げてcmdファイルを実行させる・・・なんてのも考え中ですが、何か他にいい案があるでしょうか?


引用返信 [メール受信/OFF] 削除キー/
■4903 / inTopicNo.2)  Re[1]: イベントから「システム」コマンドは使えないので……
□投稿者/ ONnoji -(2009/07/04(Sat) 13:16:53)
    >  さて今回は別件で、圧縮対象が「*.csv」等であることも含めて、動作中の wfm-kev からLZH圧縮処理をさせる必要がでてきました。しかるに「システム」コマンドはイベントからは使えません。で、どうしたものか?と。
    >  一案としては、ボタンの「シェル実行」で桐をもう1本立ち上げてcmdファイルを実行させる・・・なんてのも考え中ですが、何か他にいい案があるでしょうか?

    「シェル実行」でLha32.exe を実行するバッチファイル( .bat )を実行すればいいでは???。

    釈迦に説法になりますが、バッチファイル( .bat )は印字開始・印字・印字終了で作れます。

    ちなみに、「シェル実行」でバッチファイル( .bat )が実行できることは検証済みです、というよりいつも使ってます。

引用返信 [メール受信/OFF] 削除キー/
■4904 / inTopicNo.3)  Re[1]: イベントから「システム」コマンドは使えないので……
□投稿者/ 通りすがり -(2009/07/04(Sat) 13:25:45)
    コマンドボタンに以下を登録する
    シェル実行 "Lha32.exe","u -al -jpl -o2 F:\某\"+&選択ファイル名+" E:\某々\*.*"

    ボタン以外のイベントで使いたければ、
    メソッド呼び出し <コマンドボタン>.実行()
引用返信 [メール受信/OFF] 削除キー/
■4905 / inTopicNo.4)  同期が必要でしょうか
□投稿者/ T.Samura -(2009/07/04(Sat) 13:48:45)
     「圧縮完了を待つ」のは必要でしょうか?
     投げっぱなし実行なら他の方の返信にあるように可能のようですが、「圧縮完了を待って」次の処理へは一工夫必要かと思います。

     桐ではないですが Windows アプリケーションで「メモ帳を起動して編集が済んだら(起動したメモ帳が終了したら)編集済みファイルを読んで、、、」という処理をさせるときは、起動させるときにプロセスIDを取得して、そのプロセスが終了するまで一定時間置きにチェックするというプログラムになりました。
引用返信 [メール受信/ON] 削除キー/
■4907 / inTopicNo.5)  Re[2]: 同期が必要でしょうか
□投稿者/ ONnoji -(2009/07/04(Sat) 14:53:38)
    2009/07/04(Sat) 15:38:56 編集(投稿者)
    2009/07/04(Sat) 14:54:57 編集(投稿者)

    >  「圧縮完了を待つ」のは必要でしょうか?
    >  投げっぱなし実行なら他の方の返信にあるように可能のようですが、「圧縮完了を待って」次の処理へは一工夫必要かと思います。

    横レスで失礼。m(__)m

    例えば、バッチファイル( .bat )が以下のようだとして

    del flag.txt
    Lha32.exe u -al -jpl -o2 F:\鼻毛某・・・
    copy ほげほげ.txt flag.txt
    rem echo 完了 > flag.txt でも良いかな?

    Lha32.exe を実行する前に削除した flag.txt がディスク上に存在するか否かを、
    タイマーイベントで一定のインターバルで、#ファイルサイズ( )関数で監視してもいいカモ。

    当方では、頻繁にバッチファイル( .bat )の実行結果を監視するタイマーイベントを実行していますが…。
    ファイルの存在をフラグにする方法は、やったことが無いので未検証です。

引用返信 [メール受信/OFF] 削除キー/
■4909 / inTopicNo.6)  Re[1]: イベントから「システム」コマンドは使えないので……
□投稿者/ オヨヨ -(2009/07/04(Sat) 15:45:05)
    コマンドボタンの機能 開く→某Backup.cmd
    ではうまくない?
引用返信 [メール受信/OFF] 削除キー/
■4911 / inTopicNo.7)  まとめてRe: イベントから「システム」コマンドは使えないので……
□投稿者/ Kanasy.Ge -(2009/07/04(Sat) 15:58:04)
    皆さん、ありがとうございました。おかげさまで無事できました。(^^)v

    マトレスで失礼しますが、概ねはNo4903のONnojiさんのやり方を使いました。

    >「シェル実行」でLha32.exe を実行するバッチファイル( .bat )を実行すればいいでは???。
    >釈迦に説法になりますが、バッチファイル( .bat )は印字開始・印字・印字終了で作れます。

    ヘルプ(リファレンス)の記述では、1行目に「Windows のファイルタイプに登録されたアプリケーションを使用して、指定したファイルを開きます」と書いてあるので、バッチファイルなんて実行できないと思い込んでいました。
    でもよくよく読んでみたら、同2行目には「このコマンドは、Windows エクスプローラで、ファイルを選択して開く機能と同じです」ともあるので、何のことはない、普通にできますよね。
    こんなこと、何年も知らなかった(^^;)。いや、その後あまり桐を使わなくなっていたので、忘れていたのかも(^^;)。



    次に「同期」の件ですが(Re>No4905、No4907、それと通りすがりさんの49*?)、
    本件の場合、圧縮処理中はDOS小窓が開いているので、それが閉じるのを待つことで実質的に問題ないようです。



    ついでに書きますと、以下の点でも引っ掛かっていました。
    使う人の希望では、目的のLZHファイルをデスクトップ上に作り上げて欲しい、と。
    つまり
     &選択ファイル名="C:\Documents and Settings\某\デスクトップ\某CSV"+&某+".LZH"
    として
     E:\Lha32.exe u -al -jpl -o2 "+&選択ファイル名+" "+#データパス名+"*.CSV"
    のようなことを試していたのだが、どうもうまく行かない(デスクトップ上にできない)。
    そこで一計を案じて
     &選択ファイル名1=#データパス名+"某CSV"+&某+".LZH"
     &選択ファイル名2="C:\Documents and Settings\某\デスクトップ\某CSV"+&某+".LZH"
    として、ひとまずデータパス上にLZHファイルを作成した後に
     ファイル複写 &選択ファイル名1,&選択ファイル名2,終了状態=&実行リターン
    なぜかは知らねど、このようにすれば無事デスクトップ上に目的のLZHファイルが現れるようになりました。



    No4909 オヨヨさん

    >コマンドボタンの機能 開く→某Backup.cmd
    >ではうまくない?

    先方のPCで「cmd」が桐に関連づけされていない可能性の方が(一般的に)高いので、取りあえず避けました。


解決済み!
引用返信 [メール受信/OFF] 削除キー/
■4912 / inTopicNo.8)  Re[2]: まとめてRe: イベントから「システム」コマンドは使えないので……
□投稿者/ Kanasy.Ge -(2009/07/04(Sat) 16:11:27)
    No4911に返信(Kanasy.Geさんの記事)

    > 先方のPCで「cmd」が桐に関連づけされていない可能性の方が(一般的に)高いので、取りあえず避けました。

    あ、桐から開くので、Windows上での関連づけなんて関係なさそうですね(試してませんが)。(^^;)



    それと、実際にやってみたら、csvだとExcel関連データが多数混在していることが判明したので、圧縮対象ファイルをK3に変更するようにしました。


引用返信 [メール受信/OFF] 削除キー/
■4914 / inTopicNo.9)  Re[2]: 同期が必要でしょうか
□投稿者/ hidetake -(2009/07/04(Sat) 22:27:45)
引用返信 [メール受信/OFF] 削除キー/
■4915 / inTopicNo.10)  Re[3]: 同期が必要でしょうか
□投稿者/ Kanasy.Ge -(2009/07/04(Sat) 22:50:43)
    No4914に返信(hidetakeさんの記事)

    > sh <filename>,Sync=True,・・・
    > sh <filename>,Sync=False,・・・
    > シェル実行 <ファイル名>,同期=する,・・・
    > シェル実行 <ファイル名>,同期=同期=しない,・・・

    さっそく
     シェル実行 "Lha32-U.bat",同期=する,戻り値=&実行リターン,&秒
    のように使わせて戴きました。
    終了後には確認メッセージを出していたのですが(そしてそれは殆どがうまいことDOS小窓の奥に表示されていたのでさほど問題にはなっていなかったのですが)、確かに完了直後にポンと確認メッセージが出るようになりましたよ〜ん。(^^)v

引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -