- - PR -
batファイルをタスクで実行するには
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-04-14 20:29
或るアプライアンスに対してリモートでdfコマンドを
定期的に実行したい。 そこで、rshで下記の内容を実行すると正常に意図した 動作をしました。 ファイル名:C:\test.bat -- set yyyymmdd=%yyyymmdd:/=% set yyyymmdd2=%time:~0,2%%time:~3,2% rsh 192.168.114.110 -l root:password df > c:\temp2\test%yyyymmdd%%yyyymmdd2%.txt -- しかし、タスクスケジューラーに設定すると Dos窓が一瞬表示されますが、ファイルが生成される ディレクトリにファイルは生成されません。 %で囲んだ内容を更に、ダブルコーテーションで囲って みたり、いろいろ試しましたが、正しく実行されません。 お手数ですが、正しく実行する方法について 何かしらアドバイス頂けましたら幸いです。 | ||||
|
投稿日時: 2009-04-15 15:14
http://itpro.nikkeibp.co.jp/article/COLUMN/20060912/247777/
うえのページの手順でタスクにbatファイルを登録すればよいと思う。 拡張子が.batまたは.exeになっていますか。 | ||||
|
投稿日時: 2009-04-15 17:31
気になるところは2つですね。
1.タスクを実際に実行するユーザーに該当ファイルを作成する権限があるか 2.タスクを実際に実行する環境で、環境変数 yyyymmdd はどのようにセットされているのか | ||||
|
投稿日時: 2009-04-16 12:06
試験問題作成委員会さん
コメントありがとうございます。 URL参考にしまして再確認しました。 拡張子は、batになっています。 ひろ@yaさん コメントありがとうございます。 実行ユーザは、ローカルコンピュータのadministratorで ログインして、ファイルの作成、temp2ディレクトリへの 書き込みができているので権限はあると思います。 yyyymmddについては、不思議なことに当初うまく動作していた のですが、途中よりいきなり、動作しなくなりました。 下記のような結果となりました。 コマンドラインから、test2.batを実行した場合 (最初は成功していたのに、失敗しだした。) C:\>test2.bat C:\>set yyyymmdd=/= C:\>set yyyymmdd2=1203 C:\>rsh 192.168.114.110 -l root:toyo3675 df =1203.txt 1>c:\temp2\test/ ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。 C:\> 何の影響がどこでどうなったのか不明なので、別の方法を 探しましたところ、変数は使用しない方法をネットで見つけ まして、下記の方法で実行されるようになりました。 rsh 192.168.114.110 -l root:password df > c:\temp2\test%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%-%TIME:~0,2%-%TIME:~3,2%.txt コメント頂きありがとうございました。 どうにか意図する動作となりましたので ひとまずこれで様子を見たいと思います。 | ||||
|
投稿日時: 2009-04-16 12:25
解決したとのことで蛇足ですが、ひょっとしたらこういうことが原因?と思う
近しい現象に随分昔に遭遇したので、お知らせしておきます。 但し、今回の根幹的な肝心な部分は、
だと思うのですが、その部分が質問者より提示されていないので、推測の域を出ませんが。 【以前に出会った現象=このような原因が関係しているかも?】 同じくそれまで動作していたASP(ASP.NETではなくレガシーASP)が 急に動作しなくなったとの報告を受けた。 色々、原因を探ってみたところ、 ユーザがサーバに IEのSPバージョンを当てた結果、 (もう7年くらい前なので記憶が曖昧。OSのSPだったかもしれない) コントロールパネルの 日付と時刻の設定における 長い日付の表現形式が それまでyyyy/mm/dd形式だったのに、SPバージョン当てにより、 いつの間にかyy/mm/dd形式に内部変更されてしまった。 プログラム(VBScript)では、FormatDateTime関数で FormatDateTime(Now(),vbLongDate) で指定して、日付の情報を取得していたが(帰ってくる期待値をyyyy/mm/dd形式として)、 yy/mm/ddに関数の取得結果が陥ってしまったため、 エラーとなった。 | ||||
|
投稿日時: 2009-04-16 12:44
補足しますと、生成されるファイル名は下記のようになりました。
test2009-04-16-11-49.txt | ||||
|
投稿日時: 2009-04-20 13:23
platiniさん
コメントありがとうございます。 なるほど、そういう事があったのですね。 今回は、WindowsUpdateや、SPの適用は実施 しておらず、稼働したままのXPで発生 しました。20時頃Dos窓で実施できてタスクに 仕込んで、テスト後に、再度Dos窓で実行したら 変数の値が正しく入らなくなってしまいました。 (一緒に端末を見ていた人も、なぜ?と感じていた。) 目的が「ファイル名に日時分を入れたい」という所から 検索したり調べたりして、変数に日時を入れているサイトを 見つけその内容にならって設定し当初は動作したのですが 最終的にはNGでした。 変数の定義は特に意図しておらず、最終的なたどり着いた 下記のやり方で希望する動作を実現できたので良しとしました。 rsh 192.168.114.110 -l root:password df > c:\temp2\test%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%-%TIME:~0,2%-%TIME:~3,2%.txt コメントありがとうございました。 勉強になりました。 |
1