フォルダ内のcsvファイルを一つのテキストファイルにまとめるバッチファイルを作成したのですが、環境(PC)によって想定通りの結果になったりならなかったりします。
こちらのサイトを参考にさせてもらい、バッチファイルを作成しました。
https://ikatakos.com/pot/programming/batch/concatenate
コードはこちらになります。
※出力するファイルはサイトの例ではresult.csvですが
result.txtとしています。
bat
1@echo off 2setlocal enabledelayedexpansion 3 4set /a counter=0 5 6for /f %%i in ('dir /b *.csv') do ( 7 8 echo %%i 9 if !counter!==0 ( 10 set /p _head=<%%i 11 echo !_head!>>result.txt 12 ) 13 set /a counter=!counter!+1 14 15 for /f "tokens=* skip=1" %%b in (%%i) do ( 16 echo %%b>>result.txt 17 ) 18) 19pause
あるPCではresult.txtが出力され、中身も想定通り(フォルダ内csvファイルの内容がすべて記載)なのですが、
別のPCだとresult.txtの出力がされませんでした。
forの前にpauseを記載し起動すると、記載箇所で処理が止まるので
バッチファイルの起動自体はされるのですが、result.txtが出力されないので
それ以降の処理が想定通りに進んでいないようです。
(フォルダにcsvファイルがあっても、forの条件文でなぜかfalseになっているのでしょうか・・・?)
環境(PC)によって挙動が変わる場合にありがちな考慮漏れは何かありますでしょうか?
もしくは原因を確認する方法はございますか?
以上、宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/17 14:22
2020/06/17 14:23
2020/06/17 14:39
2020/06/20 00:35
2020/06/20 00:42