質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

1回答

2956閲覧

csvをまとめるバッチファイルが、環境によって起動したりしなかったりする

cattleya

総合スコア8

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2020/06/16 13:30

フォルダ内の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)によって挙動が変わる場合にありがちな考慮漏れは何かありますでしょうか?
もしくは原因を確認する方法はございますか?

以上、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ファイル名に空白があるとかでしょうか。

エラーメッセージは出ていないのですか?

投稿2020/06/16 13:44

otn

総合スコア84421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cattleya

2020/06/17 14:22

回答ありがとうございます。 csvファイル名に空白はありませんが 想定通りだったPC→ファイル名は英語のみ 想定通りでなかったPC→ファイル名に日本語あり でした。 エラーメッセージについては確認できませんでした。 最後にpause
cattleya

2020/06/17 14:23

↑補足 最後にpauseをつけてもそこでは止まらず、cmd画面が消えてしまいます。
otn

2020/06/17 14:39

> 最後にpauseをつけてもそこでは止まらず、cmd画面が消えてしまいます。 コマンドプロンプトから実行してエラーメッセージを確認しましょう。
cattleya

2020/06/20 00:35

コメントありがとうございます。 コマンドプロンプトから実行したところ「do (の使い方が誤っています。」のエラーメッセージが出力されました。
otn

2020/06/20 00:42

では、そこを修正しましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問