回答編集履歴

1

追記

2018/08/23 13:00

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -9,3 +9,269 @@
9
9
 
10
10
 
11
11
  `@ECHO ON`とかして、`>`の前に何と書いてあるかとか、テスト的にファイル出力などをして、本当に"C:\temp\"で実行されて**いない**かご確認いただく必要があると思います。
12
+
13
+
14
+
15
+ --追記
16
+
17
+ ご理解いただけないようなので改めて申し上げますが、そこにそういう表記が出ていても、作業フォルダの設定は動いています。
18
+
19
+
20
+
21
+ ```bat
22
+
23
+ REM one.cmd
24
+
25
+ @ECHO ON
26
+
27
+ echo "this is 1!" >> 1.txt
28
+
29
+ PAUSE
30
+
31
+ ```
32
+
33
+ ```bat
34
+
35
+ REM two.cmd
36
+
37
+ @ECHO ON
38
+
39
+ echo "this is 2!" >> 1.txt
40
+
41
+ PAUSE
42
+
43
+ ```
44
+
45
+ これらを
46
+
47
+ C:\bin
48
+
49
+ -one.cmd
50
+
51
+ -two.cmd
52
+
53
+ C:\temp1
54
+
55
+ -empty
56
+
57
+ C:\temp2
58
+
59
+ -empty
60
+
61
+
62
+
63
+ こういう構成において、タスクスケジューラに
64
+
65
+ ```XML
66
+
67
+ <?xml version="1.0" encoding="UTF-16"?>
68
+
69
+ <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
70
+
71
+ <RegistrationInfo>
72
+
73
+ <Date>2018-08-23T21:36:01.7920025</Date>
74
+
75
+ <Author>me</Author>
76
+
77
+ <URI>\one</URI>
78
+
79
+ </RegistrationInfo>
80
+
81
+ <Triggers>
82
+
83
+ <LogonTrigger>
84
+
85
+ <Enabled>true</Enabled>
86
+
87
+ <UserId>papinianus</UserId>
88
+
89
+ </LogonTrigger>
90
+
91
+ </Triggers>
92
+
93
+ <Principals>
94
+
95
+ <Principal id="Author">
96
+
97
+ <UserId></UserId>
98
+
99
+ <LogonType>InteractiveToken</LogonType>
100
+
101
+ <RunLevel>HighestAvailable</RunLevel>
102
+
103
+ </Principal>
104
+
105
+ </Principals>
106
+
107
+ <Settings>
108
+
109
+ <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
110
+
111
+ <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
112
+
113
+ <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
114
+
115
+ <AllowHardTerminate>true</AllowHardTerminate>
116
+
117
+ <StartWhenAvailable>false</StartWhenAvailable>
118
+
119
+ <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
120
+
121
+ <IdleSettings>
122
+
123
+ <StopOnIdleEnd>true</StopOnIdleEnd>
124
+
125
+ <RestartOnIdle>false</RestartOnIdle>
126
+
127
+ </IdleSettings>
128
+
129
+ <AllowStartOnDemand>true</AllowStartOnDemand>
130
+
131
+ <Enabled>true</Enabled>
132
+
133
+ <Hidden>false</Hidden>
134
+
135
+ <RunOnlyIfIdle>false</RunOnlyIfIdle>
136
+
137
+ <WakeToRun>false</WakeToRun>
138
+
139
+ <ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
140
+
141
+ <Priority>7</Priority>
142
+
143
+ </Settings>
144
+
145
+ <Actions Context="Author">
146
+
147
+ <Exec>
148
+
149
+ <Command>c:\bin\one.cmd</Command>
150
+
151
+ <WorkingDirectory>c:\temp1</WorkingDirectory>
152
+
153
+ </Exec>
154
+
155
+ </Actions>
156
+
157
+ </Task>
158
+
159
+ ```
160
+
161
+ ```XML
162
+
163
+ <?xml version="1.0" encoding="UTF-16"?>
164
+
165
+ <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
166
+
167
+ <RegistrationInfo>
168
+
169
+ <Date>2018-08-23T21:36:36.9287388</Date>
170
+
171
+ <Author>me</Author>
172
+
173
+ <URI>\two</URI>
174
+
175
+ </RegistrationInfo>
176
+
177
+ <Triggers>
178
+
179
+ <LogonTrigger>
180
+
181
+ <Enabled>true</Enabled>
182
+
183
+ <UserId>papinianus</UserId>
184
+
185
+ </LogonTrigger>
186
+
187
+ </Triggers>
188
+
189
+ <Principals>
190
+
191
+ <Principal id="Author">
192
+
193
+ <UserId></UserId>
194
+
195
+ <LogonType>InteractiveToken</LogonType>
196
+
197
+ <RunLevel>HighestAvailable</RunLevel>
198
+
199
+ </Principal>
200
+
201
+ </Principals>
202
+
203
+ <Settings>
204
+
205
+ <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
206
+
207
+ <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
208
+
209
+ <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
210
+
211
+ <AllowHardTerminate>true</AllowHardTerminate>
212
+
213
+ <StartWhenAvailable>false</StartWhenAvailable>
214
+
215
+ <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
216
+
217
+ <IdleSettings>
218
+
219
+ <StopOnIdleEnd>true</StopOnIdleEnd>
220
+
221
+ <RestartOnIdle>false</RestartOnIdle>
222
+
223
+ </IdleSettings>
224
+
225
+ <AllowStartOnDemand>true</AllowStartOnDemand>
226
+
227
+ <Enabled>true</Enabled>
228
+
229
+ <Hidden>false</Hidden>
230
+
231
+ <RunOnlyIfIdle>false</RunOnlyIfIdle>
232
+
233
+ <WakeToRun>false</WakeToRun>
234
+
235
+ <ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
236
+
237
+ <Priority>7</Priority>
238
+
239
+ </Settings>
240
+
241
+ <Actions Context="Author">
242
+
243
+ <Exec>
244
+
245
+ <Command>C:\bin\two.cmd</Command>
246
+
247
+ <WorkingDirectory>c:\temp2</WorkingDirectory>
248
+
249
+ </Exec>
250
+
251
+ </Actions>
252
+
253
+ </Task>
254
+
255
+ ```
256
+
257
+ こういう設定で実行したところ
258
+
259
+ ![実行画面](95086eed9341c9c50f8e60c7fad73faf.png)
260
+
261
+ のように、タイトルバーにかかわらず、作業フォルダが効いた状態で実行され、かつc:\temp1\1.txtgとc:\temp2\1.txtがそれぞれ作成されました(system32に2行書かれた1.txtができたのではない)。
262
+
263
+
264
+
265
+ もし、これが納得できず、感触に合わないので、cdしたようにしたいのだったら、launcherのcmdを作り、
266
+
267
+ ```bat
268
+
269
+ REM launch.abc.cmd
270
+
271
+ cd /d C:\temp
272
+
273
+ abc.cmd
274
+
275
+ ```
276
+
277
+ とすればいいだけです。