• ベストアンサー
  • すぐに回答を!

ATコマンドからエグゼファイルが実行できない

こんにちは。 ATコマンドで毎日10:00時に一回、あるバッチファイルを起動させる登録を行なっています。 しかしバッチファイルからVBで作成したエグゼファイルが実行されていないようです。 エグゼファイル(Project1.exe)は今はテスト用で実行させますとWindowが表示されるだけです。DOSプロンプトから実行させるとWindowはちゃんと表示します。 ログファイルを意図的にはかせてますが、終わりのログがはかれているのでバッチファイル自体は実行されているようなのですが。 どういった原因なのかこころあたりある方よろしくお願いします。 起動するバッチファイル(testbat.bat)の内容 C: echo "start" >C:\test.log Project1.exe echo "end" >C:\test.log

共感・応援の気持ちを伝えよう!

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.5
noname#41381
noname#41381

お礼の補足ですが... >しかし、ほんとのエグセの内容はVBでエクセルのマクロをCALLする処理です。 >それは対話はないんですが、、、うまくいくのは事実ですね。 > ログインしているデスクトップにウィンドウを表示させること自体がscheduleサービスとの「対話」になるはずです。 それがたとえ入力要求がないとしてもです。

共感・感謝の気持ちを伝えよう!

質問者からの補足

実はWindowは表示しないようにしてるんですけど それもやっぱり「対話」になるんですね。 「対話」の定義がはっきりしませんよね。

その他の回答 (4)

  • 回答No.4
noname#41381
noname#41381

>つけていません。 >どういう意味なのでしょうか? > では、まず「at xx:xx /interactive c:\testbat.bat」で実行してみてください。 どうでしたか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ほんとですね うまくいきました(^^;) 対話許可モードですか? うーん、サンプルはうまくいくのは納得です。 しかし、ほんとのエグセの内容はVBでエクセルのマクロをCALLする処理です。それは対話はないんですが、、、うまくいくのは事実ですね。 どうしてかはわかりませんが、ありがとうございました。

  • 回答No.3
noname#41381
noname#41381

自信ないですけど... atに「/interavtive」オプションをつけてますか?

共感・感謝の気持ちを伝えよう!

質問者からの補足

つけていません。 どういう意味なのでしょうか?

  • 回答No.2

バッチファイルからは実行できませんね。 私も経験があります。 仕方がないので、VBでshell関数を使い、 バッチファイルを起動するようなEXEを作りました。 これをATコマンドで起動すれば(バッチファイルを)実行出来ます。

共感・感謝の気持ちを伝えよう!

  • 回答No.1

pppstationといいます うまくいくかどうかは分かりませんが Batファイルのなかの、EXE起動部分のパスをフルパスで指定するようにしてみてはどうでしょうか? C:\windows\project1.exe 見たいな感じで うまくいかなかったらごめんなさい

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • 外部ファイルを実行するには?

    お世話になります。 vb6で外部のバッチファイルを起動して、それを動作させようとしているのですが、うまくいきません。特にエラーにはならず、一瞬DOSプロントは立ち上がるんですが、バッチ処理しているログにはなにも書き込まれません。普通にバッチファイルをダブルクリックさせるか、コマンドからバッチファイルの入っているフォルダまでいって、バッチファイルを実行すれば書き込まれるのですが。 どこがまちがっているのでしょうか?shellじゃなくて、違う関数を使わなければいけないのでしょうか?ご教授よろしくお願いします。 なお、vb6でテストするときは▸マークの実行を押して、テストしました。 サンプル用のものです。 ↓test 現在の時間をログに記入 ■バッチファイルの中身(test.bat) echo test >> log.txt time/t >> log.txt ■vb6のファイルの中身 Private Sub Command1_Click() Dim ret as long ret = shell("cmd.exe /c C:\test\test.bat",4) End Sub

  • コマンドプロンプトからのcmd実行について

    現在VBSでオブジェクトを定義しrunを使いcmd経由で他のバッチ・VBS・ソフトの起動をやっています。 ふととあるパスが実行できませんでした。 そこで別途個別にコマンドプロンプトだけで実行してみましたがやはりうまく処理できません。 [echo.bat] echo test pause [コマンドプロンプト] rem その1 cmd /K c:\temp\a\echo.bat rem その2 cmd /K C:\Temp\(a\echo.bat その1の結果 C:>cmd /K C:\Temp\a\echo.bat C:>echo test test C:>pause 続行するには何かキーを押してください . . . その2の結果 C:>cmd /K C:\Temp\(a\echo.bat 'C:\Temp\' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:> 上記のように1は正常に処理され2はうまく処理されません。 解決策をひたすら検索したのですが見つからず なんとなくだいたい分かったのが一部『(』や『)』や『&』や『@』や『^』などの記号が混じるとどうやらうまく処理できないようです。 なぜ処理できないのか?と、如何すればこれを回避して実行できるか分かる方がいればよろしくお願いします。 備考: (現状の緊急回避として記号のあるパスは記号のないパスから経由batを生成する方法を思いつきましたが自分で馬鹿だと思います) (経由バッチの中身が"C:\Temp\(a\echo.bat"ならば実行できるから) また、cmd /K "C:\Temp\(a\echo.bat" では実行できませんでした。 OSはXPです。コマンドプロンプトヴァージョンは(Microsoft Windows XP [Version 5.1.2600])です

  • VBScript(WScript)のバッチファイル実行

    お世話になります。 VBScriptで困っています。 ご存知の方、ご教示願えますでしょうか。 Windowsでバッチファイルを実行したときに、DOS画面(コマンドプロンプト)が一瞬パッて表示されるかと思います。 現在開発中のシステムで、プログラムからバッチファイルを自動で実行する処理を入れております。 通常ならばバッチファイルを実行した場合、DOS画面が表示されてしまいますが DOS画面を出さないようにプログラムを組んでいます。 つまり、VBScriptからバッチファイルを実行しております。 以下、VBScriptのソースを記載します。 Set objShell = WScript.CreateObject("WScript.Shell") fcresult = objShell.Run("C:\abc.bat", 0, True) wscript.quit fcresult 上記のVBSを実行すると、必然的に「abc.bat」が実行されます。 しかし、現在僕が使っている環境ですとDOS画面が表示されません(←これがやりたいこと) しかし、お客さんの環境で同じ様にVBSからバッチファイルを実行すると 「C:\WINDOWS\System32\CScript.exe」という名前でDOS画面が起動されてしまいます。 周りの環境でもVBSからバッチをたたくような処理を行ってみましたが、DOS画面が起動されず。。。 正直、再現が難しいため大変困っております。 お客さんの環境では100%再現されます。 全くもって原因がつかめておりません。 Windowsのセキュリティの設定でしょうか!? ご存知の方いらっしゃいましたら、知恵をお貸しください。 よろしくお願いいたします。

  • バッチファイルを実行するとエラーが出る

    win2000を利用しています。起動時に自動的にアプリケーションを実行させるバッチファイルを作りたいのですがエラーがでます。 以下のように書いています。このバッチファイルをスタートアップに入れて実行させたいと思っています。 そして試しに手動で実行してみると、構成ファイルが見つからない、パス名を確認してくださいと言ったいエラーが出ます。 パスが間違っているのかと思い、 「C:\Program Files\Internet Explorer\IEXPLORE.EXE」だけをファイル名を指定して実行をするとちゃんとIEが起動します。 何が間違っているのかわからないのですが、ヒントだけでもお願いします。 test.bat(ファイル名) --------------------------- start C:\Program Files\Internet Explorer\IEXPLORE.EXE ---------------------------

  • ATコマンドでバッチを実行するとエラーになります。

    よろしくお願いします。 WindowsXP(SP1)、Windows2000(SP4)、Windows2003 ServerからLinuxサーバの共有領域に 接続する為にバッチファイル(AAA.bat)を作成しました。 AAA.batを実行したところ、Linuxサーバに接続する事が確認出来たので、 次にATコマンドでAAA.batを実行したところ下記のメッセージが 表示されました。 「システム エラー 1312が発生しました。  指定されたログオン セッションは存在しません。そのセッションは既に終了している可  能性があります。」 ATコマンドからAAA.bat(共有領域の接続)を実行する場合に、何か注意点がありましたら御教授お願いします。 また、ATコマンドで他のBATファイルを実行したところ正常に動作したので、スケジュールのサービス等には問題なさ そうです。 AAA.bat net use * \\***.***.***.***\coo\log syspass /user:system ※「***.***.***.***」の部分はIPアドレスです。 ATコマンド at 20:12 /interactive c:\test\AAA.bat

  • バッチファイルをatコマンドでうまく実行できない

    初心者で申し訳ありませんが教えてください。 特定の時間になると、○○サーバにあるデータをLocalの○○フォルダへコピーするバッチファイルを作成したいと考えています。 コピーだけのバッチファイルは作成できました。 特定の時間になると、このバッチファイルを起動させるバッチファイルを作成したかったので、色々調べていてatコマンドを利用する方法と、 システムツールのタスクを利用する方法を見つけました。 タスクの方だと上手く実行できるのですが、atコマンドのほうが上手くいきません。 記述したコードは以下になります。 at 15:30 C:\Copy.bat タスクには追加されるのですが、実行時間になり、実行中となっても完了しません。 ○○サーバがアクセス権が必要なサーバです。 やはりアクセス権の関係で失敗してるのでしょうか? (でもそれなら、コピーだけのバッチファイルも実行できない気がしますが・・・) タスク処理で設定した方は、設定項目にユーザIDとパスワードを 入力する項目があったので設定してました。 at関数の方も実行するユーザーIDとパスワードを設定すればいいのでしょうか?その場合やり方も教えてください。 よろしくお願いします。

  • 【VC2008】実行ファイル(exe)に引数を渡すやり方

    タイトルの実行ファイル(仮にtest.exe)は、バッチファイルにします。 ------------------------------------------------ @echo off test.exe 引数1(文字列) 引数2(整数) ・・・ ------------------------------------------------ やりたい事は、上記の引数の testプロジェクト内での受け取り方です。 開発環境は、VC2008 の CLRコンソールアプリケーションです。 どなたかやり方をご存知の方がいらっしゃいましたら、ご教授の程よろしくお願いいたします。

  • バッチファイルを1個だけしか起動しないようにしたい

    エクスプローラー上から バッチファイル(test.bat)を ダブルクリックしてバッチファイルを実行しています。 通常はコマンドプロンプトが1個だけ表示されて、 バッチファイルが実行して実行が終了すると コマンドプロンプトも閉じられます。 しかし、時々、 コマンドプロンプトが2個表示されることがあります。 つまり、ダブルクリックが、 1回ではなく2回実行されたと誤認識されて、 同じバッチファイル(test.bat)が 2つ起動してしまったと思われます。 当然、その後の処理はおかしくなります。 (バッチファイル(test.bat)の中に 何らかのコードを追加するなどして) 必ず1個だけしか起動しないようにすることは、 できないでしょうか。 (Windows10)

  • batファイルで、call使っても戻ってこない

    こんにちは 教えてほしいことがあります。 batファイルで他のbatファイルを実行するためにcallで呼び出すと、処理がまた戻ってくる事を知り、 以下のようにやってみたのですが、戻ってきている様子がありません。 どこが間違っているのか教えていただければと思います。 以下file-backup.bat echo 処理開始 >> %LOG% date /t >> %LOG% time /t >> %LOG% C:\****\Backup\FastCopy198\fastcopy.exe /cmd=force_copy /auto_close /open_window /error_stop=TRUE /log /from_date="-2D" "D:\file2" "/to=\\********\file2" @echo off call "Z:\file-backup2.bat" echo 処理終了 >> %LOG% ←---これ以下がログファイルに表示されない time /t >> %LOG% echo. >> %LOG% ログに「処理終了」が入ってきませんので、callで戻ってきていないと判断しました。 環境はwinserver2008です。 ご教授お願いします。

  • DOSのバッチファイルでカレントフォルダを取得するには?

    現在バッチファイルにファイルをドラッグ&ドロップするとそのファイルを処理するようなバッチを組もうとしています。 おおまかな流れとして  1.ファイルのバックアップ  2.test.exeの引数にファイルのパスを渡す といった事をしたいのですが、バッチファイルにドラッグ&ドロップするとカレントフォルダがC:\Documents and Settings\user\になってしまいます。 バッチファイルのある場所をカレントフォルダとするにはどうすればよいのでしょうか。 以下カレントフォルダを確認した結果です。 OS:Windows2000 実行バッチのパス: C:\Documents and Settings\user\デスクトップ\test.bat ---test.bat---- @echo off cd pause test.bat直接起動 C:\Documents and Settings\user\デスクトップ test.batにファイルをD&D C:\Documents and Settings\user 伝わりづらくて申し訳ございません。 宜しくお願い致します。