質問編集履歴

3

誤りに気づき修正

2016/09/13 08:23

投稿

.zero
.zero

スコア18

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  ```バッチスクリプト
28
28
 
29
- rem @echo off
29
+ @echo off
30
30
 
31
31
  rem 格納パス
32
32
 

2

現状に合わせて質問の内容を修正

2016/09/13 08:23

投稿

.zero
.zero

スコア18

test CHANGED
File without changes
test CHANGED
@@ -16,6 +16,10 @@
16
16
 
17
17
  **※補足情報は必ずお読みください。解決したい内容が書かれています。**
18
18
 
19
+ **追記:**ソースコードと補足情報を更新しました 2016/09/13/ 17:22 現在
20
+
21
+
22
+
19
23
 
20
24
 
21
25
  ###該当のソースコード
@@ -76,7 +80,7 @@
76
80
 
77
81
  call :getTime
78
82
 
79
- echo # %LOGTIME% # バックアップバッチ処理 start >> %LOGPATH%\%LOGDATE%_batch.log
83
+ echo # %LOGTIME% # "バックアップバッチ処理 start" >> %LOGPATH%\%LOGDATE%_batch.log
80
84
 
81
85
 
82
86
 
@@ -84,7 +88,7 @@
84
88
 
85
89
  call :getTime
86
90
 
87
- echo # %LOGTIME% # フォルダ作成 start >> %LOGPATH%\%LOGDATE%_batch.log
91
+ echo # %LOGTIME% # "フォルダ作成 start" >> %LOGPATH%\%LOGDATE%_batch.log
88
92
 
89
93
  mkdir %BACKUPPATH%\MySQL > NUL 2>&1
90
94
 
@@ -94,7 +98,7 @@
94
98
 
95
99
  call :getTime
96
100
 
97
- echo # %LOGTIME% # フォルダ作成 end >> %LOGPATH%\%LOGDATE%_batch.log
101
+ echo # %LOGTIME% # "フォルダ作成 end" >> %LOGPATH%\%LOGDATE%_batch.log
98
102
 
99
103
 
100
104
 
@@ -102,7 +106,7 @@
102
106
 
103
107
  call :getTime
104
108
 
105
- echo # %LOGTIME% # mysqldump start >> %LOGPATH%\%LOGDATE%_batch.log
109
+ echo # %LOGTIME% # "mysqldump start" >> %LOGPATH%\%LOGDATE%_batch.log
106
110
 
107
111
  cd %MYSQLPATH%
108
112
 
@@ -114,7 +118,7 @@
114
118
 
115
119
  call :getTime
116
120
 
117
- echo # %LOGTIME% # mysqldump end >> %LOGPATH%\%LOGDATE%_batch.log
121
+ echo # %LOGTIME% # "mysqldump end" >> %LOGPATH%\%LOGDATE%_batch.log
118
122
 
119
123
 
120
124
 
@@ -122,19 +126,37 @@
122
126
 
123
127
  call :getTime
124
128
 
125
- echo # %LOGTIME% # indexバックアップ start >> %LOGPATH%\%LOGDATE%_batch.log
129
+ echo # %LOGTIME% # "index1バックアップ start" >> %LOGPATH%\%LOGDATE%_batch.log
130
+
131
+
132
+
133
+ rem %path%\*.* %path%\*.* /Y
126
134
 
127
135
  rem copy "%CORE1PATH%\index\*.*" %SOLRBACKUPPATH1%\index\*.* /Y
128
136
 
137
+ rem xcopy "%CORE1PATH%\index" %SOLRBACKUPPATH1%\index /i /y /c 2>&1> %LOGPATH%\%LOGDATE%_xcopy1.log
138
+
139
+ robocopy "%CORE1PATH%\index"\ %SOLRBACKUPPATH1%\index\ /COPYALL /R:3 /W:1
140
+
141
+ rem >> %LOGPATH%\%LOGDATE%_robocopy1.log
142
+
143
+ rem /NDL /UNILOG+:%LOGPATH%\%LOGDATE%_robocopy1.log
144
+
145
+ echo # %LOGTIME% # "index1バックアップ end" >> %LOGPATH%\%LOGDATE%_batch.log
146
+
147
+ echo # %LOGTIME% # "index2バックアップ start" >> %LOGPATH%\%LOGDATE%_batch.log
148
+
129
149
  rem copy "%CORE1SGPATH%\index\*.*" %SOLRBACKUPPATH2%\index\*.* /Y
130
150
 
131
- xcopy "%CORE1PATH%\index" %SOLRBACKUPPATH1%\index /i /y
151
+ rem xcopy "%CORE1SGPATH%\index" %SOLRBACKUPPATH2%\index /i /y 2>&1> %LOGPATH%\%LOGDATE%_xcopy1.log
132
-
152
+
133
- xcopy "%CORE1SGPATH%\index" %SOLRBACKUPPATH2%\index /i /y
153
+ robocopy "%CORE1SGPATH%\index"\ %SOLRBACKUPPATH2%\index\ /COPYALL /R:3 /W:1
154
+
134
-
155
+ rem >> %LOGPATH%\%LOGDATE%_robocopy2.log
156
+
135
- call :getTime
157
+ call :getTime
136
-
158
+
137
- echo # %LOGTIME% # indexバックアップ end >> %LOGPATH%\%LOGDATE%_batch.log
159
+ echo # %LOGTIME% # "index2バックアップ end" >> %LOGPATH%\%LOGDATE%_batch.log
138
160
 
139
161
 
140
162
 
@@ -142,10 +164,12 @@
142
164
 
143
165
  call :getTime
144
166
 
145
- echo # %LOGTIME% # バックアップバッチ処理 end >> %LOGPATH%\%LOGDATE%_batch.log
167
+ echo # %LOGTIME% # "バックアップバッチ処理 end" >> %LOGPATH%\%LOGDATE%_batch.log
146
168
 
147
169
  echo. >> %LOGPATH%\%LOGDATE%_batch.log
148
170
 
171
+ exit /b 0
172
+
149
173
 
150
174
 
151
175
  rem 時間取得
@@ -162,6 +186,8 @@
162
186
 
163
187
 
164
188
 
189
+
190
+
165
191
  ```
166
192
 
167
193
 
@@ -176,40 +202,34 @@
176
202
 
177
203
  ※以下のような不穏な動作があります。
178
204
 
179
- 正常にバックアップ終了させためはバッチ呼ぶ際に以下のように呼び出し、バッチ内部ではxcopy使用しなければいけない。
205
+ "xcopy"コマンドや"robocopy"コマンド実行す結果別ファイルリダイレクトするようにバッチを記載すると正常に処理が終了する
180
206
 
181
207
  ```コマンドスクリプト
182
208
 
183
- rem 呼び出し
209
+ rem 正常動作時のコマンド
210
+
184
-
211
+ xcopy "%CORE1PATH%\index" %SOLRBACKUPPATH1%\index /i /y /c 2>&1> %LOGPATH%\%LOGDATE%_xcopy1.log
212
+
185
- backUp.bat >> backUp.log
213
+ rem 正常動作時のコマンド
214
+
215
+ robocopy "%CORE1PATH%\index"\ %SOLRBACKUPPATH1%\index\ /COPYALL /R:3 /W:1 >> %LOGPATH%\%LOGDATE%_robocopy1.log
186
216
 
187
217
  ```
188
218
 
189
- バッチを実行する際にバッチ呼び出しだけを行うと、バッチ内部ではxcopyを使用していても処理が正常に動かないxcopyコマンド開始前動作が停止してしまう
219
+ "xcopy"コマンドや"robocopy"コマンドを実行する際結果を受け取らない(リダイレクトしない)場合は処理途中で停止する
190
-
191
- **追記:**(indexバックアップ startがログにかかれない)
192
-
193
-
194
220
 
195
221
  ```コマンドスクリプト
196
222
 
197
- rem 呼び出し
223
+ rem 動作が途中で止まるときのコマンド
224
+
198
-
225
+ xcopy "%CORE1PATH%\index" %SOLRBACKUPPATH1%\index /i /y /c
226
+
199
- backUp.bat
227
+ rem 動作が途中で止まるときのコマンド
228
+
229
+ robocopy "%CORE1PATH%\index"\ %SOLRBACKUPPATH1%\index\ /COPYALL /R:3 /W:1
200
230
 
201
231
  ```
202
232
 
203
- ③バッチ内部でcopyを使用し、①と同じ方法で呼び出すと以下のエラーが発生する。
204
-
205
- ```バッチスクリプト
206
-
207
- プロセスはファイルにアクセスできません。別のプロセスがファイルの一部をロックしています。
208
-
209
- ```
210
-
211
- **追記:**出来れば、②の呼び出しで出来るようにしたい。
212
-
213
233
  以上です。
214
234
 
215
235
  ご教授の程、よろしくお願いします。

1

現象の説明に追記、回答を絞るためにやりたいことを明記

2016/09/13 08:22

投稿

.zero
.zero

スコア18

test CHANGED
File without changes
test CHANGED
@@ -186,7 +186,9 @@
186
186
 
187
187
  ```
188
188
 
189
- ②バッチを実行する際にバッチ呼び出しだけを行うと、バッチ内部ではxcopyを使用していても処理が正常に動かないxcopyコマンド動作が停止してしまう。
189
+ ②バッチを実行する際にバッチ呼び出しだけを行うと、バッチ内部ではxcopyを使用していても処理が正常に動かないxcopyコマンド開始前に動作が停止してしまう。
190
+
191
+ **追記:**(indexバックアップ startがログにかかれない)
190
192
 
191
193
 
192
194
 
@@ -206,7 +208,7 @@
206
208
 
207
209
  ```
208
210
 
209
-
211
+ **追記:**出来れば、②の呼び出しで出来るようにしたい。
210
212
 
211
213
  以上です。
212
214