- ベストアンサー
VBSで自身の実行状態をチェックする方法
- VBSについてご教授いただきた事がございます。URIAGE.batというバッチファイルを実行するTEST.VBSがあります。
- VBSには動作中のチェック方法があり、エラーメッセージを表示して処理を回避することができます。
- 環境はWindows XP SP SP3です。どなたかご教授いただけますと幸いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
そうじゃなくて、 > if exist "C:URIAGEDATA\system\空ファイル.txt" goto PROCESS1 のファイルの指定が、相対パスになっているってことです。("C:"と"C:\"の違い)
その他の回答 (2)
- m-take0220
- ベストアンサー率61% (480/785)
> CD C:\URIAGEDATA\system > if exist "C:URIAGEDATA\system\空ファイル.txt" goto PROCESS1 これだと、C:\URIAGEDATA\system\URIAGEDATA\system\空ファイル.txt というファイルが存在するかチェックすることになります。 if exist "C:\URIAGEDATA\system\空ファイル.txt" goto PROCESS1 でうまくいくんじゃないでしょうか。
補足
m-take0220さん またまた早速のご連絡ありがとうございました! 早速、ご教授いただきました様に冒頭の ”CD C:\URIAGEDATA\system” の部分を削除してみましたが結果は同じでした・・。 "空ファイル.txt"があってもなくても必ずPROCESS2に入ってしまいます。
- m-take0220
- ベストアンサー率61% (480/785)
特定の場所(例えばバッチファイルと同じフォルダ)などに、チェック用のファイルを作成するようにして、バッチファイル終了時にチェック用のファイルを削除する方法があります。 ファイルが既に存在する場合は、別のプロセスが起動中と判断できます。
補足
m-take0220さん早速のご連絡ありがとうございました! VBSから呼んでいるURIAGE.bat側で処理中に"空ファイル.txtというファイルを作成するようにして、処理が完了したら"空ファイル.txt"を削除するようにしました。 URIAGE.bat側でIF EXIST~で"空ファイル.txt"が存在すれば処理中止(PROCESS1)、存在しなければ処理開始(PROCESS2)というようにロジックを組んだつもりなのですが、なぜかすべてPROCESS2に入ってしまいます。 IF EXISTのチェックが動いていないようです。 大変お手数ですが私の問題点をご教授いただけませんでしょうか? 以下ロジックです。 CD C:\URIAGEDATA\system if exist "C:URIAGEDATA\system\空ファイル.txt" goto PROCESS1 if not exist "C:URIAGEDATA\system\空ファイル.txt" goto PROCESS2 :PROCESS1 exit /b :PROCESS2 del 空ファイル.txt TYPE NUL> 空ファイル.txt ***EXCELのマクロを動かします**** del 空ファイル.txt
お礼
m-take0220さん 何度もご連絡ありがとうございました! ご教授いただきました方法で実現できました。 本当にありがとうございました。 初歩的なことばかりお聞きして本当に申し訳ありませんでした。 この度は本当に助かりました。 ありがとうございました。