• ベストアンサー

DOS、ATコマンドでの不具合

atコマンドを使用し、ネットワーク上にあるIISのログを自分のパソコンへ取りこむbatファイルを作成しました。net useでデバイスを指定し、IISサーバーの入っているホストへアタッチし、copyコマンドでログを取りこんでいます。atコマンドを一分後などに設定し、実行すると成功するのですが、翌日にスケジュールしたりすると、実行されていません。どなたかDOSコマンドに詳しい方、思い当たるふしがあればぜひ教えて下さい。また、他にもっと確実な方法等ありましたら、どうぞ知恵をお貸し下さい。よろしくお願いします。

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

  • ベストアンサー
  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.3

>タスクスケジューラー(GUI)とatコマンドの違いはなんでしょうか? ATコマンドは3.5の時代の時も使えていました。 タスクスケジューラてWin98でも使えるけど新機能ですよね。 ATコマンドてサービスとして動作しています。 この為、ログインしていなくても動作すると思いますが... タスクスケジュールはWin98でしか使った事無いのでよく分かりませんが、単にそのユーザのアプリケーションの一つとして動作しているのではないかと思います。 この為、ATコマンドとタスクスケジューラで実行しているユーザの違いが検証結果に現れたものと推測致します。 なおコピー文で copy \\hostname\xxxx\*.* d:\xxx\oooo /y と言う手もありますが...

saya9999
質問者

お礼

いろいろご助言いただき、本当にありがとうございました。まだ全て解決したわけではありませんが、なんとか動きました。助かりました。本当に感謝いたします。

その他の回答 (2)

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.2

本当にDOSコマンドの問題ですか? ATコマンドということはWindowsNTですか? ATコマンドが正しく動作している事は確認出来ましたか? ATコマンドのオプション設定を変えてみるのも良いかもね。対話型にするとか 例えば下記のようにしてログを取ってみてはいかが echo off echo 処理を開始します。>log.txt echo\ | DATE >>log.txt net use x: \\xxxx\xxx >> log.txt copy c:\wwwroot\xxx\*.* x:\ooooo >>log.txt net use x: /delete >>log.txt echo 処理が終了しました。>>log.txt echo\ | DATE >>log.txt なおWIN98で作成しているバッチなので一部他のOSでは使えない可能性がありますのであしからず。 この手の運用はあまりしないので自信なし 自作するか別のスケジュールソフトを使うか専用ソフトをあたるかするのでね。

saya9999
質問者

お礼

早速のご助言、ありがとうございます。いろいろ試してみます。あと、厚かましくももう1つ質問なのですが、タスクスケジューラー(GUI)とatコマンドの違いはなんでしょうか?ちなみにOSはNT4.0です。atコマンドは正常に動いているようなのですが、下記のような検証を行うと、不可解な結果となりました。もし何かご存知でしたら、ぜひアドバイスお願い致します。 (1)GUIにてアタッチ先のドメインまで指定し、タスクスケジューリングを実行。(失敗) (2)GUIにてアタッチ先のドメイン指定なしにて、タスクスケジューリングを実行。(成功) (3)atコマンドにて、アタッチ先のドメインまで指定し、スケジューリングを実行。(成功) (4)atコマンドにて、アタッチ先のドメイン指定なしにて、スケジューリングを実行。(失敗) 実行したソースです。 --------------------------------------------- cmd /c "del D:\●●\□□\▲▲\*.* /q" cmd /c "del D:\●●\□□\◇◇\*.* /q" net use h: \\localhost\xx password /user:domainname\Administrator cmd /c "copy h:\*.* D:\●●\□□\▲▲" net use h: /d net use i: \\localhost\++ password /user:domainname\Administrator cmd /c "copy i:\*.* D:\●●\□□\◇◇" net use i: /d cmd "exit" ---------------------------------------

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.1

DOSじゃないとダメなんでしょうか? net use が使えるならネットワークコンピュータのネットワークドライブとしてIISのフォルダを設定しておいたらどうなんでしょう? 常時マウントしてたらだめなんですか? 自宅のサーバではそうしてます。 また参照するだけなら、マウントした後ログファイルのショートカットを作っちゃえばダブルクリックだけで開けます。

saya9999
質問者

お礼

ご返信ありがとうございます。システム構成の問題なのか、なぜか最初にその方法を試してみたところ、うまく動かなかったのです。ドライブに割り当てをして、ATコマンドでスケジュールしたのですが、動きません。う~ん、DOSとGUIではサービス自体は同様のものでも、なにか違いがあるのでしょうか。また勉強してみます。ありがとうございます。

関連するQ&A

  • ATコマンドについて教えてください。

    はじめまして。今回はじめてWinNTで、ATコマンドを使ってスケジュールを 組もうと思っています。ATコマンドにバッチプログラムをわりあてて、やろうかと思っています。 例:at 09:00 ”c:¥aa.bat” aa.batの中身 copy ¥¥サーバー1¥*.* ¥¥サーバー2 と、バッチファイル内でコピーコマンドを動かそうかと思っています。 ところが、ローカルサーバー側(サーバー1側)は認識できるのですが、 リモートサーバー側(サーバー2側)は、ATコマンドで実行すると 「アクセスが拒否されました」とメッセージを出力します。しかし、 コマンドラインでは実行できます。 ATコマンドでネットワーク間のファイルコピーを可能にするにはどうすれば よいのでしょうか? よろしくお願いします。

  • 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コマンドでネットワークドライブにファイルをコピーしたいのですが・・・

    お世話になります。 コマンドプロンプトを使用し、ファイルを別のコンピュータにコピーしたいと考えております。 環境: Test1サーバ・・・コピー元:Windows NT4.0 Test2サーバ・・・コピー先:Windows 2000 Server それぞれ別ドメインに属しています。 以下のようなbatファイルを作成しました。 net use X: \\Test2\copyfolder userpassword /user:administrator COPY sourcefile.doc X: net use X: /delete バッチファイルをTest1サーバで実行したところ正常にネットワークドライブ割り当て、ファイルのコピー、ネットワークドライブの切断ができました。 これをatコマンドで以下のようにスケジュール設定したところ、失敗しました。 at 10:00 "c:\temp\netcopy.bat" この問題の回避策を教えてください。 よろしくお願いします。

  • DOS findコマンドのバッチでストールする

    DOSコマンドプロンプトで.batファイルを作成。 内容は find "2007:01" access_log_2007_04_11.txt >log2007041101.csv このバッチファイルを、検索するaccess_log_2007_04_11.txt と同じフォルダー上において、ダブルクリックで起動すると。 コマンドプロンプトが開くのだが、以前実行した、 find "2007:00" access_log_2007_04_05.txt >log2007040500.csv が、延々と実行され。 コマンドプロンプトを閉じても log2007040500.csv を、消しても消しても、作成される。 システムを落とすしかなくなる。のです。 4月の頭では正しく動作していたんですが???

  • Vistaで、atコマンドが使えません。

    こんにちは。 Vistaで、atコマンドを使った、タスクスケジューリングができずに困っています。 例えば、管理者としてコマンドプロンプトを立ち上げ、 at 17:00 1.bat というコマンドを実行すると、 「新しいジョブをジョブ ID = 1 で追加しました。」 と表示されます。 その後、タスクスケジューラの「タスクスケジューラ ライブラリ」を見ると、 先程のジョブが、AT1という名前で、きちんと設定されています。 にもかかわらず、していした17:00になっても、1.batは実行されません。 1.batを、dirのような組み込みコマンドに変えても、実行されませんでした。 タスクスケジューリングに必要なサービスは全て起動しています。 具体的には、 DCOM Server Process Launcher Remote Procedure Call (RPC) Remote Procedure Call (RPC) Locator COM+ Event System System Service Notification Service COM+ System Application を、全て起動しています。 また、タスクスケジューラでのスケジューリングは、上手くいっています。 どうすれば、atコマンドを使う事ができるのでしょうか? 何か御存じの方がいらっしゃれば、是非、情報を提供して頂きたく思います。 では、よろしくお願い致します。

  • DOSコマンド(COPYコマンド)について

    DOS上でのCOPYコマンドについて確認します。 EXCELのファイルで、毎回ファイル名が変わるため、COPYコマンドで固定のファイル名にしようと思い、バッチ起動で、COPY \AAA\*.XLS \AAA\BBB.XLSで実行すると、コピー元と違うファイルサイズのBBB.XLSが作成されます。 中身を参照すると、文字化けしたものが 1レコードだけ作成されています。どうしてなのでしょうか? ※コピー元の*.XLSは、毎回 1ファイルのみです。

  • 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

  • DOSのバッチでファイル内を変換したい!

    現在、下記のような夜間バッチをDOSで作成したいと思っています。 1.ATコマンドの毎日夜間スケジュールで下記を実地 2.IISのLogのバックアップ 3.Logの内容で下記が含まれる行を削除   削除対象文字列:gif 1と2は完成したのですが、3の方法が思いつかず。。。。。 そもそも出来るものなのかも不明な状態です。 どうかどのようなアドバイスでも良いので是非、コメントを どうかお願い致します。

  • MS DOS Copyコマンドについて

    MS DOSのバッチファイルを作成しようと思って次のように作成して実行しましたら上手くいきました。 copy C:\SSD F:\SSD 次にProgram Filesにあるフォルダーを次のコマンドで実行しましたがうまくいきません。 copy C:Program Files\SSD F:\SSD どうしてでしょう教えて下さい。

  • DOSコマンドの変数について

    WindowsXPのマシンで、ログを出力するアプリケーションを実行しているのですが、ログのローテーション機能がないので、とりあえず、DOSコマンドにてローテーションする処理を行おうとしています。 ローテーションの条件は以下のとおりです。 ローテーション  : 1日単位(0:00) ログ出力先    : c:\appl\log ローテーション先 : c:\appl\{年月}\{日}.log 0:00に"c:\appl\log"を"c:\appl\200503\09.log"に置き換えるイメージです。 dateコマンドの値をmove処理に変数として代入したいのですが、方法が分からないので、お願いいたします。

専門家に質問してみよう