質問編集履歴

9

追記④

2019/12/24 14:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -301,3 +301,97 @@
301
301
  exit /b
302
302
 
303
303
  ```
304
+
305
+
306
+
307
+ ### 追記④
308
+
309
+
310
+
311
+ 質問1
312
+
313
+ サブルーチンを書かない方法を試しているのですが、意図した処理になりませんでした。
314
+
315
+ ```
316
+
317
+ @echo off
318
+
319
+ ren *[test1].txt *[test].txt
320
+
321
+ for /r /d %%A in (*) do (
322
+
323
+ pushd %%A
324
+
325
+ ren *[test1].txt *[test].txt
326
+
327
+ popd
328
+
329
+ )
330
+
331
+
332
+
333
+ for /r /d %%B in (*[test1]) do (
334
+
335
+ move %%B %%B:[test1]=[test]%%
336
+
337
+ )
338
+
339
+ ```
340
+
341
+ コードを理解していないので、下記なども試してみました。
342
+
343
+ ```
344
+
345
+ move %B %%B:[test1]=[test]%
346
+
347
+ move %%B %%B:[test1]=[test]%%
348
+
349
+ move %%B %B:[test1]=[test]%
350
+
351
+ ```
352
+
353
+
354
+
355
+ 質問2
356
+
357
+ サブルーチンを書く方は、
358
+
359
+ ```
360
+
361
+ @echo off
362
+
363
+ ren *[test1].txt *[test].txt
364
+
365
+ for /d %%B in (*[test1]) do call :rename %%B
366
+
367
+ for /r /d %%A in (*) do (
368
+
369
+ pushd %%A
370
+
371
+ ren *[test1].txt *[test].txt
372
+
373
+ for /d %%B in (*[test1]) do call :rename %%B
374
+
375
+ exit /b
376
+
377
+ popd
378
+
379
+ )
380
+
381
+
382
+
383
+ :rename
384
+
385
+ set A=%1
386
+
387
+ echo %A%
388
+
389
+ ren %A% %A:[test1]=[test]%
390
+
391
+ exit /b
392
+
393
+ ```
394
+
395
+ フォルダ直下と、その下のサブフォルダまでは名前変更できたのですが、
396
+
397
+ そのさらに下のサブフォルダの階層は、ファイルもフォルダも名前変更されませんでした。

8

修正

2019/12/24 14:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -224,9 +224,7 @@
224
224
 
225
225
  追記②のrenをmoveに変えて、意図した処理はできました。
226
226
 
227
- ただ、追記②のrenをmoveに変えた書き方ならば、サブルーチンで書かない方法でもできるのではないかと思ったのですが、
227
+ ただ、追記②のrenをmoveに変えた書き方ならば、サブルーチンで書かない方法でもできるのではないかと思ったのですが、コードの書き換えができませんでした。
228
-
229
- サブルーチン内の記法がよくわからず、コードの書き換えができませんでした。
230
228
 
231
229
  下記のように試したりしました。
232
230
 

7

編集追記③

2019/12/23 17:19

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -260,7 +260,7 @@
260
260
 
261
261
  質問2。
262
262
 
263
- 最上位階層でどのようにすればフォルダ名の一部変更ができますか?
263
+ 最上位階層でどのようにすればフォルダ名の一部変更ができますか?
264
264
 
265
265
  ```
266
266
 

6

追記③編集

2019/12/23 17:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -212,7 +212,7 @@
212
212
 
213
213
  ```
214
214
 
215
- 上記フォルダ名の一部変更ができる書き方かと思うのですが、上記のコードが理解できていないため、
215
+ 上記フォルダ名の一部変更ができる書き方かと思うのですが、コードが理解できていないため、
216
216
 
217
217
  質問1と質問2があります。
218
218
 

5

追記③

2019/12/23 17:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -199,3 +199,107 @@
199
199
  コマンドの構文が誤っています。
200
200
 
201
201
  ```
202
+
203
+
204
+
205
+ ### 追記③
206
+
207
+
208
+
209
+ ```
210
+
211
+ ren %A% %A:[test1]=[test]%
212
+
213
+ ```
214
+
215
+ 上記でフォルダ名の一部変更ができる書き方かと思うのですが、上記のコードが理解できていないため、
216
+
217
+ 質問1と質問2があります。
218
+
219
+ 「フォルダ 名前 一部変更 ren」などで検索してるのですが、なかなか情報が出てきませんでした。
220
+
221
+
222
+
223
+ 質問1。
224
+
225
+ 追記②のrenをmoveに変えて、意図した処理はできました。
226
+
227
+ ただ、追記②のrenをmoveに変えた書き方ならば、サブルーチンで書かない方法でもできるのではないかと思ったのですが、
228
+
229
+ サブルーチン内の記法がよくわからず、コードの書き換えができませんでした。
230
+
231
+ 下記のように試したりしました。
232
+
233
+ ```
234
+
235
+ @echo off
236
+
237
+ ren *[test1].txt *[test].txt
238
+
239
+ for /r /d %%A in (*) do (
240
+
241
+ pushd %%A
242
+
243
+ ren *[test1].txt *[test].txt
244
+
245
+ popd
246
+
247
+ )
248
+
249
+
250
+
251
+ for /r /d %%B in (*[test1]) do call :rename %%B
252
+
253
+ move %B% %B:[test1]=[test]%
254
+
255
+ exit /b
256
+
257
+ ```
258
+
259
+
260
+
261
+ 質問2。
262
+
263
+ 最上位階層でどのようにすればフォルダ名の一部変更ができますか?
264
+
265
+ ```
266
+
267
+ @echo off
268
+
269
+ ren *[test1].txt *[test].txt
270
+
271
+
272
+
273
+ rem 最上位階層ではどうすればフォルダ名の一部を変更できますか?
274
+
275
+ ren *[test1] *[test] ←これではフォルダ名は変更できない。
276
+
277
+
278
+
279
+ for /r /d %%A in (*) do (
280
+
281
+ pushd %%A
282
+
283
+ ren *[test1].txt *[test].txt
284
+
285
+ for /d %%B in (*[test1]) do call :rename %%B
286
+
287
+ exit /b
288
+
289
+ popd
290
+
291
+ )
292
+
293
+
294
+
295
+ :rename
296
+
297
+ set A=%1
298
+
299
+ echo %A%
300
+
301
+ ren %A% %A:[test1]=[test]%
302
+
303
+ exit /b
304
+
305
+ ```

4

追記②ー2

2019/12/23 16:43

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -192,6 +192,8 @@
192
192
 
193
193
  コメントアウトしなかった場合、echo %A%の後に下記エラーが出力される。
194
194
 
195
+ コメントアウトした場合はエラーメッセージが出力されない。
196
+
195
197
  ```
196
198
 
197
199
  コマンドの構文が誤っています。

3

追記②

2019/12/22 14:31

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -137,3 +137,63 @@
137
137
  pause
138
138
 
139
139
  ```
140
+
141
+
142
+
143
+ ### 追記②
144
+
145
+
146
+
147
+ pauseを打って、処理の経過を調べてみました。
148
+
149
+ ```
150
+
151
+ @echo off
152
+
153
+ ren *[test1].txt *[test].txt
154
+
155
+ for /r /d %%A in (*) do (
156
+
157
+ pushd %%A
158
+
159
+ ren *[test1].txt *[test].txt
160
+
161
+ popd
162
+
163
+ )
164
+
165
+
166
+
167
+ pause
168
+
169
+
170
+
171
+ for /r /d %%B in (*[test1]) do call :rename %%B
172
+
173
+ pause
174
+
175
+ exit /b
176
+
177
+
178
+
179
+ :rename
180
+
181
+ set A=%1
182
+
183
+ echo %A%
184
+
185
+ rem ren %A% %A:[test1]=[test]% ←ここをコメントアウトするかしないかでエラーメッセージの出る出ないが変わる。
186
+
187
+ exit /b
188
+
189
+ ```
190
+
191
+
192
+
193
+ コメントアウトしなかった場合、echo %A%の後に下記エラーが出力される。
194
+
195
+ ```
196
+
197
+ コマンドの構文が誤っています。
198
+
199
+ ```

2

追記修正。

2019/12/22 14:31

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -130,7 +130,7 @@
130
130
 
131
131
  ren %A% %A:[test1]=[test]%
132
132
 
133
- exit /b
133
+ exit/b
134
134
 
135
135
 
136
136
 

1

追記

2019/12/22 12:43

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -90,12 +90,50 @@
90
90
 
91
91
 
92
92
 
93
-
94
-
95
-
96
-
97
93
  ### 補足情報(FW/ツールのバージョンなど)
98
94
 
99
95
 
100
96
 
101
97
  Windows 10
98
+
99
+
100
+
101
+ ### 追記
102
+
103
+
104
+
105
+ ```ここに言語を入力
106
+
107
+ @echo off
108
+
109
+ ren *[test1].txt *[test].txt
110
+
111
+ for /r /d %%A in (*) do (
112
+
113
+ pushd %%A
114
+
115
+ ren *[test1].txt *[test].txt
116
+
117
+ popd
118
+
119
+ )
120
+
121
+
122
+
123
+ for /r /d %%B in (*[test1]) do call :rename %%B
124
+
125
+ exit/b
126
+
127
+ :rename
128
+
129
+ set A=%1
130
+
131
+ ren %A% %A:[test1]=[test]%
132
+
133
+ exit /b
134
+
135
+
136
+
137
+ pause
138
+
139
+ ```