teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

9

追記④

2019/12/24 14:47

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -149,4 +149,51 @@
149
149
  echo %A%
150
150
  ren %A% %A:[test1]=[test]%
151
151
  exit /b
152
- ```
152
+ ```
153
+
154
+ ### 追記④
155
+
156
+ 質問1
157
+ サブルーチンを書かない方法を試しているのですが、意図した処理になりませんでした。
158
+ ```
159
+ @echo off
160
+ ren *[test1].txt *[test].txt
161
+ for /r /d %%A in (*) do (
162
+ pushd %%A
163
+ ren *[test1].txt *[test].txt
164
+ popd
165
+ )
166
+
167
+ for /r /d %%B in (*[test1]) do (
168
+ move %%B %%B:[test1]=[test]%%
169
+ )
170
+ ```
171
+ コードを理解していないので、下記なども試してみました。
172
+ ```
173
+ move %B %%B:[test1]=[test]%
174
+ move %%B %%B:[test1]=[test]%%
175
+ move %%B %B:[test1]=[test]%
176
+ ```
177
+
178
+ 質問2
179
+ サブルーチンを書く方は、
180
+ ```
181
+ @echo off
182
+ ren *[test1].txt *[test].txt
183
+ for /d %%B in (*[test1]) do call :rename %%B
184
+ for /r /d %%A in (*) do (
185
+ pushd %%A
186
+ ren *[test1].txt *[test].txt
187
+ for /d %%B in (*[test1]) do call :rename %%B
188
+ exit /b
189
+ popd
190
+ )
191
+
192
+ :rename
193
+ set A=%1
194
+ echo %A%
195
+ ren %A% %A:[test1]=[test]%
196
+ exit /b
197
+ ```
198
+ フォルダ直下と、その下のサブフォルダまでは名前変更できたのですが、
199
+ そのさらに下のサブフォルダの階層は、ファイルもフォルダも名前変更されませんでした。

8

修正

2019/12/24 14:47

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -111,8 +111,7 @@
111
111
 
112
112
  質問1。
113
113
  追記②のrenをmoveに変えて、意図した処理はできました。
114
- ただ、追記②のrenをmoveに変えた書き方ならば、サブルーチンで書かない方法でもできるのではないかと思ったのですが、
114
+ ただ、追記②のrenをmoveに変えた書き方ならば、サブルーチンで書かない方法でもできるのではないかと思ったのですが、コードの書き換えができませんでした。
115
- サブルーチン内の記法がよくわからず、コードの書き換えができませんでした。
116
115
  下記のように試したりしました。
117
116
  ```
118
117
  @echo off

7

編集追記③

2019/12/23 17:19

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -129,7 +129,7 @@
129
129
  ```
130
130
 
131
131
  質問2。
132
- 最上位階層でどのようにすればフォルダ名の一部変更ができますか?
132
+ 最上位階層でどのようにすればフォルダ名の一部変更ができますか?
133
133
  ```
134
134
  @echo off
135
135
  ren *[test1].txt *[test].txt

6

追記③編集

2019/12/23 17:18

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -105,7 +105,7 @@
105
105
  ```
106
106
  ren %A% %A:[test1]=[test]%
107
107
  ```
108
- 上記フォルダ名の一部変更ができる書き方かと思うのですが、上記のコードが理解できていないため、
108
+ 上記フォルダ名の一部変更ができる書き方かと思うのですが、コードが理解できていないため、
109
109
  質問1と質問2があります。
110
110
  「フォルダ 名前 一部変更 ren」などで検索してるのですが、なかなか情報が出てきませんでした。
111
111
 

5

追記③

2019/12/23 17:18

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -98,4 +98,56 @@
98
98
  コメントアウトした場合はエラーメッセージが出力されない。
99
99
  ```
100
100
  コマンドの構文が誤っています。
101
+ ```
102
+
103
+ ### 追記③
104
+
105
+ ```
106
+ ren %A% %A:[test1]=[test]%
107
+ ```
108
+ 上記でフォルダ名の一部変更ができる書き方かと思うのですが、上記のコードが理解できていないため、
109
+ 質問1と質問2があります。
110
+ 「フォルダ 名前 一部変更 ren」などで検索してるのですが、なかなか情報が出てきませんでした。
111
+
112
+ 質問1。
113
+ 追記②のrenをmoveに変えて、意図した処理はできました。
114
+ ただ、追記②のrenをmoveに変えた書き方ならば、サブルーチンで書かない方法でもできるのではないかと思ったのですが、
115
+ サブルーチン内の記法がよくわからず、コードの書き換えができませんでした。
116
+ 下記のように試したりしました。
117
+ ```
118
+ @echo off
119
+ ren *[test1].txt *[test].txt
120
+ for /r /d %%A in (*) do (
121
+ pushd %%A
122
+ ren *[test1].txt *[test].txt
123
+ popd
124
+ )
125
+
126
+ for /r /d %%B in (*[test1]) do call :rename %%B
127
+ move %B% %B:[test1]=[test]%
128
+ exit /b
129
+ ```
130
+
131
+ 質問2。
132
+ 最上位階層でどのようにすればフォルダ名の一部変更ができますか?
133
+ ```
134
+ @echo off
135
+ ren *[test1].txt *[test].txt
136
+
137
+ rem 最上位階層ではどうすればフォルダ名の一部を変更できますか?
138
+ ren *[test1] *[test] ←これではフォルダ名は変更できない。
139
+
140
+ for /r /d %%A in (*) do (
141
+ pushd %%A
142
+ ren *[test1].txt *[test].txt
143
+ for /d %%B in (*[test1]) do call :rename %%B
144
+ exit /b
145
+ popd
146
+ )
147
+
148
+ :rename
149
+ set A=%1
150
+ echo %A%
151
+ ren %A% %A:[test1]=[test]%
152
+ exit /b
101
153
  ```

4

追記②ー2

2019/12/23 16:43

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -95,6 +95,7 @@
95
95
  ```
96
96
 
97
97
  コメントアウトしなかった場合、echo %A%の後に下記エラーが出力される。
98
+ コメントアウトした場合はエラーメッセージが出力されない。
98
99
  ```
99
100
  コマンドの構文が誤っています。
100
101
  ```

3

追記②

2019/12/22 14:31

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -67,4 +67,34 @@
67
67
  exit/b
68
68
 
69
69
  pause
70
+ ```
71
+
72
+ ### 追記②
73
+
74
+ pauseを打って、処理の経過を調べてみました。
75
+ ```
76
+ @echo off
77
+ ren *[test1].txt *[test].txt
78
+ for /r /d %%A in (*) do (
79
+ pushd %%A
80
+ ren *[test1].txt *[test].txt
81
+ popd
82
+ )
83
+
84
+ pause
85
+
86
+ for /r /d %%B in (*[test1]) do call :rename %%B
87
+ pause
88
+ exit /b
89
+
90
+ :rename
91
+ set A=%1
92
+ echo %A%
93
+ rem ren %A% %A:[test1]=[test]% ←ここをコメントアウトするかしないかでエラーメッセージの出る出ないが変わる。
94
+ exit /b
95
+ ```
96
+
97
+ コメントアウトしなかった場合、echo %A%の後に下記エラーが出力される。
98
+ ```
99
+ コマンドの構文が誤っています。
70
100
  ```

2

追記修正。

2019/12/22 14:31

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -64,7 +64,7 @@
64
64
  :rename
65
65
  set A=%1
66
66
  ren %A% %A:[test1]=[test]%
67
- exit /b
67
+ exit/b
68
68
 
69
69
  pause
70
70
  ```

1

追記

2019/12/22 12:43

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -44,8 +44,27 @@
44
44
  最下層のサブフォルダまで一括で変更する方法はありませんか?
45
45
  もしくは、ディレクトリは別コマンドで変更するとして、ファイルだけでも最下層まで一括で変更する方法はありませんか?
46
46
 
47
+ ### 補足情報(FW/ツールのバージョンなど)
47
48
 
49
+ Windows 10
48
50
 
49
- ### 補足情報(FW/ツールのバージョンなど)
51
+ ### 追記
50
52
 
53
+ ```ここに言語を入力
51
- Windows 10
54
+ @echo off
55
+ ren *[test1].txt *[test].txt
56
+ for /r /d %%A in (*) do (
57
+ pushd %%A
58
+ ren *[test1].txt *[test].txt
59
+ popd
60
+ )
61
+
62
+ for /r /d %%B in (*[test1]) do call :rename %%B
63
+ exit/b
64
+ :rename
65
+ set A=%1
66
+ ren %A% %A:[test1]=[test]%
67
+ exit /b
68
+
69
+ pause
70
+ ```