質問編集履歴

3

追記追加、使用コードの追加

2023/08/14 11:09

投稿

T_Sajispoon_T
T_Sajispoon_T

スコア1

test CHANGED
File without changes
test CHANGED
@@ -90,6 +90,12 @@
90
90
   (copy コピー元 コピー先 名前 とするとみたがパスでの指定がわからない)
91
91
  ・ファイル名の変更がうまくいかない、わからない
92
92
 
93
+ =========以下8/14追記===========================
94
+
95
+ 簡易的に作成したフォルダ構成にてバッチファイルを実行するフォルダを指定して処理を行った結果(追記上部コード)正常に動作したが
96
+ バッチファイルに対して様々なファイルをドラッグ&ドロップで処理を実行したいため、追記下部コードにてset "TargetFolder=%~dp1"でバッチファイルを実行したフォルダのパスを指定してみたが、12行目までしか正常に動作しませんでした。
97
+ 19行目、24行目のfor /d %%j in ("%TargetFolder%\%%i*")が間違っているのだと思いますが、解決策がわからずじまいになっています。
98
+ 大変申し訳ないのですが現状の限界を感じております。助力のほどいただけたら幸いです。
93
99
 
94
100
  ### 該当のソースコード
95
101
 
@@ -132,6 +138,136 @@
132
138
  Exit
133
139
  ```
134
140
 
141
+ =========以下8/14追記===========================
142
+
143
+ ```bat
144
+ @echo off
145
+
146
+ rem Cell_log_allフォルダを生成
147
+ mkdir .\Cell_log_all
148
+
149
+ rem 各Cell_log(CL-)サブフォルダを生成
150
+ for %%i in (Mt-Log Df-Log Lf-Log Dd-Log) do (
151
+ mkdir ".\Cell_log_all\CL-%%i"
152
+ )
153
+
154
+ setlocal enabledelayedexpansion
155
+
156
+ rem フォルダ上から下へ
157
+ for %%i in (Mt-Log Df-Log Lf-Log Dd-Log) do (
158
+ rem サブフォルダカウント
159
+ set count=0
160
+ for /d %%j in ("%Cell_datalist%\%%i*") do (
161
+ set /a count+=1
162
+ )
163
+
164
+ rem サブフォルダ処理
165
+ for /d %%j in ("%Cell_datalist%\%%i*") do (
166
+ set "sourceFolder=%%j"
167
+ set "destinationFolder=.\Cell_log_all\CL-%%i\%%~nxj"
168
+
169
+ rem サブフォルダコピー
170
+ xcopy /Y /I /E "!sourceFolder!" "!destinationFolder!"
171
+ )
172
+ )
173
+
174
+ rem カレントフォルダCell_log_allフォルダ対象
175
+ set "targetFolder=.\Cell_log_all"
176
+
177
+ rem CSVファイル処理
178
+ for /r "%targetFolder%" %%i in (*.csv) do (
179
+ rem CSVファイルのパスを取得
180
+ set "csvPath=%%~fi"
181
+
182
+ rem フォルダ名変更
183
+ set "folderName=%%~dpi"
184
+ set "folderName=!folderName:~0,-1!"
185
+
186
+ rem ファイル名連結 CSVファイル移動
187
+ move /Y "!csvPath!" "!folderName!.csv" >nul 2>&1
188
+ )
189
+
190
+ rem 各サブフォルダ処理
191
+ for %%i in (CL-Mt-Log CL-Df-Log CL-Lf-Log CL-Dd-Log) do (
192
+ rem サブフォルダのパスを設定
193
+ set "subfolder=.\Cell_log_all\%%i"
194
+
195
+ rem 空フォルダ削除
196
+ for /d %%j in ("!subfolder!\*") do (
197
+ rd "%%j" 2>nul
198
+ )
199
+ )
200
+
201
+ endlocal
202
+
203
+ exit
204
+ ```
205
+
206
+ ```bat
207
+ @echo off
208
+
209
+ set "TargetFolder=%~dp1"
210
+
211
+ rem Cell_log_allフォルダを生成
212
+ mkdir .\Cell_log_all
213
+
214
+ rem 各Cell_log(CL-)サブフォルダ生成
215
+ for %%i in (Mt-Log Df-Log Lf-Log Dd-Log) do (
216
+ mkdir ".\Cell_log_all\CL-%%i"
217
+ )
218
+
219
+ setlocal enabledelayedexpansion
220
+
221
+ rem フォルダ上から下へ
222
+ for %%i in (Mt-Log Df-Log Lf-Log Dd-Log) do (
223
+ rem サブフォルダカウント
224
+ set count=0
225
+ for /d %%j in ("%TargetFolder%\%%i*") do (
226
+ set /a count+=1
227
+ )
228
+
229
+ rem サブフォルダ処理
230
+ for /d %%j in ("%TargetFolder%\%%i*") do (
231
+ set "sourceFolder=%%j"
232
+ set "destinationFolder=.\Cell_log_all\CL-%%i\%%~nxj"
233
+
234
+ rem サブフォルダコピー
235
+ xcopy /Y /I /E "!sourceFolder!" "!destinationFolder!"
236
+ )
237
+ )
238
+
239
+ rem カレントフォルダCell_log_allフォルダ対象
240
+ set "targetFolder=.\Cell_log_all"
241
+
242
+ rem CSVファイル処理
243
+ for /r "%targetFolder%" %%i in (*.csv) do (
244
+ rem CSVファイルのパスを取得
245
+ set "csvPath=%%~fi"
246
+
247
+ rem フォルダ名変更
248
+ set "folderName=%%~dpi"
249
+ set "folderName=!folderName:~0,-1!"
250
+
251
+ rem ファイル名連結 CSVファイル移動
252
+ move /Y "!csvPath!" "!folderName!.csv" >nul 2>&1
253
+ )
254
+
255
+ rem 各サブフォルダ処理
256
+ for %%i in (CL-Mt-Log CL-Df-Log CL-Lf-Log CL-Dd-Log) do (
257
+ rem サブフォルダのパスを設定
258
+ set "subfolder=.\Cell_log_all\%%i"
259
+
260
+ rem 空フォルダ削除
261
+ for /d %%j in ("!subfolder!\*") do (
262
+ rd "%%j" 2>nul
263
+ )
264
+ )
265
+
266
+ endlocal
267
+
268
+ exit
269
+ ```
270
+
135
271
  ### 試したこと
136
272
 
137
273
  ファイル名を変更する等の単語で調べソースコードをお借りしてきたのち、ren→copy等のいくつかに変更を加えていきました。

2

タグの追加

2023/08/10 02:45

投稿

T_Sajispoon_T
T_Sajispoon_T

スコア1

test CHANGED
File without changes
test CHANGED
File without changes

1

書式の修正

2023/08/10 02:21

投稿

T_Sajispoon_T
T_Sajispoon_T

スコア1

test CHANGED
File without changes
test CHANGED
@@ -81,7 +81,6 @@
81
81
 
82
82
  ### 発生している問題・エラーメッセージ
83
83
 
84
- ```
85
84
  (※バッチファイルのエラーメッセージをどう出力すればいいのかわかりませんでした...)
86
85
 
87
86
  ・test_allフォルダは生成されるがそれ以降の処理が正常に動作していない、しかし原因がわからない。
@@ -91,7 +90,6 @@
91
90
   (copy コピー元 コピー先 名前 とするとみたがパスでの指定がわからない)
92
91
  ・ファイル名の変更がうまくいかない、わからない
93
92
 
94
- ```
95
93
 
96
94
  ### 該当のソースコード
97
95