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\
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答1件
0
ベストアンサー
c:\windows\system32\cmd.exe
このように「cmd.exe」と書いておられるということは、その表記は、タイトルバーですよね(×とか最小化ボタンがある箇所)?
それって、コマンドプロンプトプログラムの本体のある場所なので、そこにそのように表示されていたとしても「上記ディレクトリにcdしてバッチを実行していない」とは言えないと思います(ちゃんとcdしていてもそう表示されるので)。
@ECHO ON
とかして、>
の前に何と書いてあるかとか、テスト的にファイル出力などをして、本当に"C:\temp"で実行されていないかご確認いただく必要があると思います。
--追記
ご理解いただけないようなので改めて申し上げますが、そこにそういう表記が出ていても、作業フォルダの設定は動いています。
bat
1REM one.cmd 2@ECHO ON 3echo "this is 1!" >> 1.txt 4PAUSE
bat
1REM two.cmd 2@ECHO ON 3echo "this is 2!" >> 1.txt 4PAUSE
これらを
C:\bin
-one.cmd
-two.cmd
C:\temp1
-empty
C:\temp2
-empty
こういう構成において、タスクスケジューラに
XML
1<?xml version="1.0" encoding="UTF-16"?> 2<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> 3 <RegistrationInfo> 4 <Date>2018-08-23T21:36:01.7920025</Date> 5 <Author>me</Author> 6 <URI>\one</URI> 7 </RegistrationInfo> 8 <Triggers> 9 <LogonTrigger> 10 <Enabled>true</Enabled> 11 <UserId>papinianus</UserId> 12 </LogonTrigger> 13 </Triggers> 14 <Principals> 15 <Principal id="Author"> 16 <UserId></UserId> 17 <LogonType>InteractiveToken</LogonType> 18 <RunLevel>HighestAvailable</RunLevel> 19 </Principal> 20 </Principals> 21 <Settings> 22 <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> 23 <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> 24 <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> 25 <AllowHardTerminate>true</AllowHardTerminate> 26 <StartWhenAvailable>false</StartWhenAvailable> 27 <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> 28 <IdleSettings> 29 <StopOnIdleEnd>true</StopOnIdleEnd> 30 <RestartOnIdle>false</RestartOnIdle> 31 </IdleSettings> 32 <AllowStartOnDemand>true</AllowStartOnDemand> 33 <Enabled>true</Enabled> 34 <Hidden>false</Hidden> 35 <RunOnlyIfIdle>false</RunOnlyIfIdle> 36 <WakeToRun>false</WakeToRun> 37 <ExecutionTimeLimit>PT1H</ExecutionTimeLimit> 38 <Priority>7</Priority> 39 </Settings> 40 <Actions Context="Author"> 41 <Exec> 42 <Command>c:\bin\one.cmd</Command> 43 <WorkingDirectory>c:\temp1</WorkingDirectory> 44 </Exec> 45 </Actions> 46</Task>
XML
1<?xml version="1.0" encoding="UTF-16"?> 2<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> 3 <RegistrationInfo> 4 <Date>2018-08-23T21:36:36.9287388</Date> 5 <Author>me</Author> 6 <URI>\two</URI> 7 </RegistrationInfo> 8 <Triggers> 9 <LogonTrigger> 10 <Enabled>true</Enabled> 11 <UserId>papinianus</UserId> 12 </LogonTrigger> 13 </Triggers> 14 <Principals> 15 <Principal id="Author"> 16 <UserId></UserId> 17 <LogonType>InteractiveToken</LogonType> 18 <RunLevel>HighestAvailable</RunLevel> 19 </Principal> 20 </Principals> 21 <Settings> 22 <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> 23 <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> 24 <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> 25 <AllowHardTerminate>true</AllowHardTerminate> 26 <StartWhenAvailable>false</StartWhenAvailable> 27 <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> 28 <IdleSettings> 29 <StopOnIdleEnd>true</StopOnIdleEnd> 30 <RestartOnIdle>false</RestartOnIdle> 31 </IdleSettings> 32 <AllowStartOnDemand>true</AllowStartOnDemand> 33 <Enabled>true</Enabled> 34 <Hidden>false</Hidden> 35 <RunOnlyIfIdle>false</RunOnlyIfIdle> 36 <WakeToRun>false</WakeToRun> 37 <ExecutionTimeLimit>PT1H</ExecutionTimeLimit> 38 <Priority>7</Priority> 39 </Settings> 40 <Actions Context="Author"> 41 <Exec> 42 <Command>C:\bin\two.cmd</Command> 43 <WorkingDirectory>c:\temp2</WorkingDirectory> 44 </Exec> 45 </Actions> 46</Task>
こういう設定で実行したところ
のように、タイトルバーにかかわらず、作業フォルダが効いた状態で実行され、かつc:\temp1\1.txtgとc:\temp2\1.txtがそれぞれ作成されました(system32に2行書かれた1.txtができたのではない)。
もし、これが納得できず、感触に合わないので、cdしたようにしたいのだったら、launcherのcmdを作り、
bat
1REM launch.abc.cmd 2cd /d C:\temp 3abc.cmd
とすればいいだけです。
投稿2018/08/23 08:13
編集2018/08/23 13:00総合スコア12705
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。