質問: フォルダ内のcsvファイルを一つのテキストファイルにまとめるバッチファイルを作成したのですが、環境(PC)によって想定通りの結果になったりならなかったりします。 こちらのサイトを参考にさせてもらい、バッチファイルを作成しました。 https://ikatakos.com/pot/programming/batch/concatenate コードはこちらになります。 ※出力するファイルはサイトの例ではresult.csvですが result.txtとしています。 ``` @echo off setlocal enabledelayedexpansion set /a counter=0 for /f %%i in ('dir /b *.csv') do ( echo %%i if !counter!==0 ( set /p _head=<%%i echo !_head!>>result.txt ) set /a counter=!counter!+1 for /f "tokens=* skip=1" %%b in (%%i) do ( echo %%b>>result.txt ) ) pause ``` あるPCではresult.txtが出力され、中身も想定通り(フォルダ内csvファイルの内容がすべて記載)なのですが、 別のPCだとresult.txtの出力がされませんでした。 forの前にpauseを記載し起動すると、記載箇所で処理が止まるので バッチファイルの起動自体はされるのですが、result.txtが出力されないので それ以降の処理が想定通りに進んでいないようです。 (フォルダにcsvファイルがあっても、forの条件文でなぜかfalseになっているのでしょうか・・・?) 環境(PC)によって挙動が変わる場合にありがちな考慮漏れは何かありますでしょうか? もしくは原因を確認する方法はございますか? 以上、宜しくお願い致します。
回答: ファイル名に空白があるとかでしょうか。 エラーメッセージは出ていないのですか?