質問編集履歴

3

追記

2018/06/20 02:24

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -252,6 +252,8 @@
252
252
 
253
253
  ---
254
254
 
255
+ **11:24 追記↓**
256
+
255
257
  試行錯誤して下記の様に変更したら、1ファイルずつコピーできるようになりましたが、
256
258
 
257
259
  logファイルがうまく生成されません。

2

追記

2018/06/20 02:24

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -248,4 +248,98 @@
248
248
 
249
249
  ```
250
250
 
251
+
252
+
253
+ ---
254
+
255
+ 試行錯誤して下記の様に変更したら、1ファイルずつコピーできるようになりましたが、
256
+
257
+ logファイルがうまく生成されません。
258
+
259
+ logファイルは、log-YYYYMMDDSS.logという形式で出力させたいのですが、なぜか、
260
+
261
+ log-.logというファイルが1ファイルしか出来上がりません。
262
+
263
+
264
+
265
+
266
+
267
+ ```bat
268
+
269
+ @echo off
270
+
271
+
272
+
273
+ set LogPath=C:\work\01_学習資料\01_Windows\bat\tmp\
274
+
275
+ set SrcPath=C:\work\01_学習資料\01_Windows\bat\tmp\
276
+
277
+ set DstPath=C:\work\01_学習資料\01_Windows\bat\tmp1\
278
+
279
+
280
+
281
+ cd %SrcPath%
282
+
283
+
284
+
285
+
286
+
287
+ for %%i in (*.dat) do (
288
+
289
+ rem echo %%i
290
+
291
+
292
+
293
+ set S_time_tmp=%time: =0%
294
+
295
+ set hh=%S_time_tmp:~0,2%
296
+
297
+ set mi=%S_time_tmp:~3,2%
298
+
299
+ set ss=%S_time_tmp:~6,2%
300
+
301
+ set S_datetime=%hh%%mi%%ss%
302
+
303
+
304
+
305
+ rem logファイル生成
306
+
307
+ echo PC→XXServer > %LogPath%log-%S_datetime%.log
308
+
309
+ echo CopyFileName: %%i >> %LogPath%log-%S_datetime%.log
310
+
311
+ echo 開始時刻:%S_datetime% >> %LogPath%log-%S_datetime%.log
312
+
313
+
314
+
315
+ copy %%i %DstPath%
316
+
317
+
318
+
319
+ set E_time_tmp=%time: =0%
320
+
321
+ set hh=%E_time_tmp:~0,2%
322
+
323
+ set mi=%E_time_tmp:~3,2%
324
+
325
+ set ss=%E_time_tmp:~6,2%
326
+
327
+ set E_datetime=%hh%%mi%%ss%
328
+
329
+
330
+
331
+ echo 終了時刻:%E_datetime% >> %LogPath%log-%S_datetime%.log
332
+
333
+
334
+
335
+ timeout /T 2 > null
336
+
337
+ )
338
+
339
+
340
+
341
+ pause
342
+
343
+ ```
344
+
251
345
  アドバイスの程、よろしくお願い致します。

1

追記

2018/06/20 02:23

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -178,4 +178,74 @@
178
178
 
179
179
 
180
180
 
181
+ 一応、一つ一つ分解し簡略化した動作を確認しています。
182
+
183
+ まずは、コピー元フォルダ内のファイルが取得できるか確認。↓
184
+
185
+ ```バッチ
186
+
187
+ @echo off
188
+
189
+
190
+
191
+ cd C:\work\01_学習資料\01_Windows\bat\tmp
192
+
193
+
194
+
195
+ for %%i in (*.dat) do (
196
+
197
+ echo %%i
198
+
199
+ )
200
+
201
+ ```
202
+
203
+
204
+
205
+ そして、以下のようにループで取得したファイル名をパスに連結すると
206
+
207
+ エラーとなってしまいます。%%1には、ファイル名が入っているので、
208
+
209
+ ```
210
+
211
+ copy %SrcPath%%%i % DstPath%
212
+
213
+ ```
214
+
215
+ としても大丈夫なような気もするのですが・・・・
216
+
217
+
218
+
219
+ ```バッチ
220
+
221
+ @echo off
222
+
223
+
224
+
225
+ set LogPath=C:\work\01_学習資料\01_Windows\bat\tmp\
226
+
227
+ set SrcPath=C:\work\01_学習資料\01_Windows\bat\tmp\
228
+
229
+ set DstPath=C:\work\01_学習資料\01_Windows\bat\tmp1\
230
+
231
+
232
+
233
+ cd %SrcPath%
234
+
235
+
236
+
237
+
238
+
239
+ for %%i in (*.dat) do (
240
+
241
+ rem echo %%i
242
+
243
+ copy %SrcPath%%%i % DstPath% 
244
+
245
+ )
246
+
247
+ pause
248
+
249
+ ```
250
+
181
251
  アドバイスの程、よろしくお願い致します。