質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.62%

windows serverのタスクスケジューラについて

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,854

pokemonta

score 109

windows serverを再起動してタスクスケジューラからバッチを実行したい。
この時にタスクスケジューラの設定を以下のように指定しました。

□プログラム/スクリプト
上記バッチ名
□開始(オプション)
上記バッチのディレクトリ

しかし、再起動するとドス窓には
c:\windows\system32\cmd.exeと表示され
上記ディレクトリにcdしてバッチを実行していないです。
これを改善する方法を教えていただけないでしょうか
独立したドス窓でなおかつバッチ名もドス窓で表示されるようタスクスケジューラを設定したい

[追記]
---pgm---------------------
C:\temp\abc.cmd
↓中身
set aphome=C:\ap
call"%aphome%\APサーバ起動PGM"

---task---------------------
セキュリティオプション・・ユーザがログインしているときのみ実行     
↑再起動後、自動でログインするような仕組みのため問題なし
トリガー・・・ログオン時
操作
プログラム・・C:\temp\abc.cmd
引数の追加・・なし
開始オプション・・C:\temp\

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • y_waiwai

    2018/08/23 09:16

    そのプログラムスクリプトの内容を提示してください。また、タスクスケジューラの設定内容もお願いします

    キャンセル

回答 1

checkベストアンサー

0

c:\windows\system32\cmd.exe

このように「cmd.exe」と書いておられるということは、その表記は、タイトルバーですよね(×とか最小化ボタンがある箇所)?
それって、コマンドプロンプトプログラムの本体のある場所なので、そこにそのように表示されていたとしても「上記ディレクトリにcdしてバッチを実行していない」とは言えないと思います(ちゃんとcdしていてもそう表示されるので)。

@ECHO ONとかして、>の前に何と書いてあるかとか、テスト的にファイル出力などをして、本当に"C:\temp\"で実行されていないかご確認いただく必要があると思います。

--追記
ご理解いただけないようなので改めて申し上げますが、そこにそういう表記が出ていても、作業フォルダの設定は動いています。

REM one.cmd
@ECHO ON
echo "this is 1!" >> 1.txt
PAUSE
REM two.cmd
@ECHO ON
echo "this is 2!" >> 1.txt
PAUSE


これらを
C:\bin
-one.cmd
-two.cmd
C:\temp1
-empty
C:\temp2
-empty

こういう構成において、タスクスケジューラに

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2018-08-23T21:36:01.7920025</Date>
    <Author>me</Author>
    <URI>\one</URI>
  </RegistrationInfo>
  <Triggers>
    <LogonTrigger>
      <Enabled>true</Enabled>
      <UserId>papinianus</UserId>
    </LogonTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId></UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>c:\bin\one.cmd</Command>
      <WorkingDirectory>c:\temp1</WorkingDirectory>
    </Exec>
  </Actions>
</Task>
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2018-08-23T21:36:36.9287388</Date>
    <Author>me</Author>
    <URI>\two</URI>
  </RegistrationInfo>
  <Triggers>
    <LogonTrigger>
      <Enabled>true</Enabled>
      <UserId>papinianus</UserId>
    </LogonTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId></UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\bin\two.cmd</Command>
      <WorkingDirectory>c:\temp2</WorkingDirectory>
    </Exec>
  </Actions>
</Task>


こういう設定で実行したところ
実行画面
のように、タイトルバーにかかわらず、作業フォルダが効いた状態で実行され、かつc:\temp1\1.txtgとc:\temp2\1.txtがそれぞれ作成されました(system32に2行書かれた1.txtができたのではない)。

もし、これが納得できず、感触に合わないので、cdしたようにしたいのだったら、launcherのcmdを作り、

REM launch.abc.cmd
cd /d C:\temp
abc.cmd


とすればいいだけです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/08/23 20:45

    わかりました。私の感覚として、
    cd C:\tempしてabc.cmdを実行しているという感じより
    C:\temp\abc.cmdを直接たたいているときの挙動です。
    前者の動きをしたいです。同日に複数のcmdファイルを実行して
    それぞれ独立して区別したいため

    キャンセル

  • 2018/08/23 22:09

    追記しました。
    独立して区別できているのに、独立して区別できていないと思い込んでおられるだけだと思います。
    また、見た目の上で、どうしてもタイトルバーで識別したいなら
    > title abc.cmd
    とtitleコマンドを使えば変えることができます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る