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

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

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

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

  • 回答数3
  • 閲覧数2906
  • ありがとう数4

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

  • ベストアンサー
  • 回答No.2

> やはりアクセス権の関係で失敗してるのでしょうか? おそらくそうでしょう。バッチファイルの出力をリダイレクトしてファイルに保存してみると、表示されるメッセージが確認できるかもしれません。 > (でもそれなら、コピーだけのバッチファイルも実行できない気がしますが・・・) 手動で実行した場合、使用されるアカウントはログオンしているアカウントです。atコマンドの場合は、デフォルトだとシステムアカウントです。 > at関数の方も実行するユーザーIDとパスワードを設定すればいいのでしょうか?その場合やり方も教えてください。 OSの種類が書かれてませんが。 タスクがあるのでしたら、タスクを表示している状態でメニューに[詳細設定]-[ATサービスのアカウント]がありませんか?

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

質問者からのお礼

回答ありがとうございます。 なるほど、atコマンドだと、デフォルトでシステムアカウントなんですね。納得しました。間違いなくアクセス権の問題です。 ちなみにOSはXPを利用しています。 それと、先ほど少し邪道な方法で希望の処理を行うことは出来ました。 下のような感じで、一旦サーバーをネットワークドライブとして割り当てて、それからデータをコピー。最後にネットワークドライブを切断。 net use f: "サーバー名" /user: ID PASS xcopy "コピー元フォルダ" "f:" /delete f: これでもいいのですが、もっとスマートに記述したいです。 xcopyでデータをコピーする際に、サーバーのアドレスを指定しますが、その時に○○ユーザーでアクセスするといった様な設定はできないのでしょうか? 下のような感じで1行でスッキリ書きたいです。 xcopy "C:\temp" "コピー先の共有サーバー\フォルダ名\" アクセスに利用するIDとパス

その他の回答 (2)

  • 回答No.3

xcopyのスイッチは、 xcopy /? を実行するとヘルプが表示されますが、アカウントの指定はできないようです。 バッチファイル等、簡単に中が見られるファイルに、パスワードを記述するのも好ましくないと思います。タスクに登録して、アカウントを指定するのがいいんじゃないかと思います。

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

質問者からのお礼

なるほど、言われてみればそうかもしれません。 勉強になりました。 ありがとうございます。

  • 回答No.1

ご参考 http://support.microsoft.com/default.aspx?scid=kb%3bja%3b879958 Administrator 権限で at コマンドを実行していますか?

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

質問者からのお礼

ご回答ありがとうございます。 URL参考にしてみます。 ちなみに実行時にはAdministrators権限で実行してます。

関連するQ&A

  • バッチファイルでの時間差実行

    バッチファイルでnet useコマンドを使用してドライブマッピングスクリプトを作成しました。これをWindowsのスタートアップに登録し実行するのですがうまくいきません。 うまくいかない理由は、無線LANルータでのアクセス認証に時間がかかりすぎることです。つまり、無線LANルータとの間でネットワークコネクションが張られるよりも前にバッチファイルが実行されてしまい、その結果、接続先が見つからないという結果になってしまっています。Windows起動後しばらくしたのちに同じスクリプトを実行すると成功します。 そこで、バッチファイルの起動のタイミングを少し遅らせることができれば、当該バッチファイルでのドライブマッピングができるのではないかと考えたのですが、そのようなことは可能でしょうか? ATコマンドの使用も考えたのですが、ATコマンドでは絶対時刻を指定することしかできないので、それではやりたいことができないように思っています。 変な質問で恐縮ですが、お知恵を拝借できますとありがたいです。

  • バッチファイルのタスクスケジューラでの実行について教えて下さい。

    AAAのパソコンのDドライブの111というフォルダを、ネットワーク経由でBBBのパソコンのDドライブの222という共有フォルダ内に333というフォルダ内へxcopyでコピーするバッチ(backup.bat)を作ってタスクスケジューラで1日1回自動実行させようと思うのですが、うまくいきません。どうすればよいのでしょうか? AAAパソコン:Windows2000 professional SP4        000フォルダ内にbackup.bat(共有フォルダではないです)        111フォルダは共有フォルダではないです        ユーザーアカウント⇒Administrator        パスワードはないです        BBBパソコン:WindowsXP professional SP2        222フォルダは共有フォルダ        333フォルダは222の共有フォルダの中        ユーザーアカウント⇒バックアップ        パスワード⇒123 バッチファイル(backup.bat)  ↓  net use \\BBB\222 123 /user:バックアップ  xcopy d:\111 \\BBB\222\333\ /E/C/F/H/R/K> d:\バックアップログ.log  net use \\BBB\222 /delete 上記バッチファイルをAAAパソコンの「タスクの実行するファイル名」に直接登録(d:\000\backup.bat)して実行させてみたのですが、タスクの詳細設定のログ表示でログを見ると、『タスクは次の終了コードで完了しました:(1).』となっていて実行されませんでした。 cmd.exe /c d:\000\backup.batでタスク登録してもだめでした。 バッチファイル(backup.bat)をダブルクリックして実行するとBBBパソコンにコピーできます。 タスク設定時の   実行するアカウント名⇒AAA\Administrator   パスワードはなし よろしくお願いいたします。

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

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

  • WindowsNT/2000のATコマンド

    代理でアップさせていただきました。 説明不足の点をご容赦頂き、下記の内容で判明、推測できる点、参考HP等をお教え頂けると助かります。 ---質問--- WindowsNT/2000でATコマンドを使用しています。 バッチファイルを起動しているのですが、バッチの中でパスが入っている 環境変数を使用しています。 コマンドラインから直接バッチを起動した場合と、ATコマンドにて起動 した場合とで、同じ環境変数項目のパスが異なっています。 ユーザーが異なっているためと思われますが、   通常:Administrator   ATコマンド:Default User ATコマンドで起動した場合もコマンドラインから起動した場合と同じ 状態にしたいのですが方法が判ったら教えて下さい。 尚、タスクを使うとユーザーが指定できるので問題なく動きます。 ---以上--- どうぞよろしくお願いいたします。

  • サーバからNASにファイルコピーするバッチファイル

    サーバからNASにファイルをコピーするバッチファイルを作成しました。 NASの共有フォルダにアクセス制限を設定し、バッチファイルを実行すると、 「アクセスが拒否されました」のメッセージが出てコピーできません。 バッチファイルの実行アカウントを「system」にしています。 どこが間違っているのでしょうか。 よろしくお願いします。 NAS:バッファローTeraStation :ホスト名→NAS :共有フォルダ名→test ユーザ→test パスワード→password サーバ:Windows2003serverSE ***バッチファイル*** net use S: \\NAS\test "password" /user:test xcopy "C:\test00" "\\NAS\test" net use S: /delete

  • FTPのバッチファイル

    ローカルPCからサーバーのPCへ毎日決まったファイルをFTPで伝送したいと思っています。今はFFFTPで、毎日手動でファイルをアップロードしていますが、DOS窓からFTP接続するコマンドをバッチファイルにすることってできないのでしょうか? できれば、そのバッチファイルをタスクスケジューラーに登録して日々自動でアップロードしたいと考えています。 ftp open 接続先 ユーザーID パスワード put ファイル名 といった内容をバッチファイルにしたいのですが、やり方をご存知の方がいらっしゃいましたら、教えていただけないでしょうか?

  • PHPからバッチファイルの実行

    PHPのファイルから、特定のPDFファイルを印刷するコマンドが書かれたバッチファイルを実行したいと考えています。 exec(\'test.bat\');みたいな感じでやってはみたものの、Web画面が止まってしまってうまくいきませんでした。 どなたかご存知の方、ご教授ください。よろしくお願いいたします。

    • 締切済み
    • PHP
  • バッチファイルで実行できたりできなかったり

    こんにちは。 バッチファイルとコマンドプロンプトについて、少々お伺いしたいことがあります。 まず、コマンドプロンプトで以下のコマンドを打ち込んでみたところ、すべて正常に実行することができました。 ping [example.com] > result.txt tracert [example.com] >> tr_result.txt ipconfig /all > ipc_result.txt 次に、各コマンドをテキストファイルに書き込んで、それぞれ "p_test.bat" # 内容は ping コマンド "tr_test.bat" # 内容は tracert コマンド "ipc_test.bat" # 内容は ipconfig コマンド と命名しデスクトップに配置、ダブルクリックで実行してみました。 すると、このうち正常に実行(結果をテキストファイルに出力)されたのは tr_test.bat のみでした。 ここで質問なのですが、なぜこのような違い(バッチファイルにすると実行できるものとできないものに分かれる)が起こるのでしょうか? バッチファイルの作り方やとコマンドプロンプトについて調べてみましたが、説明を見つけることが出来ませんでした。 この辺の理論について詳しい方がおりましたら、ご教示頂きたく思います。 ちなみに、OS は Windows XP SP2 です。 よろしくお願いいたします。

  • サーバ上のバッチファイルの実行方法

    複数のサーバにあるそれぞれ同じバッチをクライアントから一度に起動できるように デスクトップに一発起動バッチを作ろうと思っています。 ですが、どのようにコマンドを指定したらいいのかわかりません。 atコマンドを使ってタスクのスケジュールでできるかもと色々試してみましたが、 力及ばずうまくいきませんでした。 atコマンドでは「何秒後に起動」みたいな指定はできないんでしょうか? スケジュールという形で何時何分にというのではなく、 思った時に各サーバで即実行といった形で考えています。 よろしくお願いします。

  • バッチファイル内の各コマンドが順番に実行される条件

    Windows環境にてDOSコマンドでバッチファイルを作成して実行します。 バッチファイル内には複数のコマンドを記述しており、上から順番に 処理されて処理が完了してから次のコマンドを実行することを期待しています。 例) ping PC_NAME_A    ping PC_NAME_B 実際に実行してみて1つ目のコマンドが終了してから、2つ目の コマンドが実行されているのは確認できているのですが、 この「1つ目のコマンドが終了してから次のコマンドを実行する」という 仕様を裏付ける記事などが見つけられません。(Microsoftのサイトなど) どなたかご存知の方がいらっしゃいましたら教えてください。