以下の仕様でWindows10向けバッチファイルを作ってほしいです。
1)カンマ含む任意の文字列11文字(例:AA,BB,CC,DD)に対して、2つ目のカンマを改行コードに変換したい。
2)改行コードはCR+LFとする。
3)対象ファイルは、バッチのあるフォルダにある、拡張子が.CSVのファイル全て。
4)変換結果は、一つ下にoutputフォルダを生成し、その下に出力する。
5)出力ファイル名は、入力ファイル名_out.csvとする。
6)対象フォルダ、出力ファイル名への付与文字列、置換対象文字列は、バッチ内の定義で変更できること。
補足:
・自分の勉強用なので、バッチには適宜コメント入れてくれるとありがたいです。
・元ファイルはシリアル伝送のログファイルで、2桁の16進をASCII変換+カンマ区切りで記録しているのですが、ログ生成ツールがテキスト長さ固定で改行コードを挿入してしまうため、途中で伝送データが途切れて再開した時に、頭出しの位置がズレてしまいます。
→電文冒頭と末尾の文字列は固定なので、冒頭と末尾の間がカンマでつながっている箇所を見つけて改行コードを入れたい。
・テキストエディタで変換する、でもいいのですが、ファイルが大量にあるのでバッチで一括処理したい。
・元ファイルのサイズは100~300MBくらいです。
コマンドプロンプトが終わろうとしている現在、DOSバッチで新規処理を書くのは気乗りのしない人が多いでしょう。
せめて PowerShell で書くか、あるいは JScript、あるいは Windows 標準添付の C# で書く方が良いように思います。
また、ファイルが大量に在るのであれば、ファイル名をプログラムにハードコーディングするのではなく、ファイルを格納するフォルダをパラメータで与える仕様の方が適切だと思います。
ここは、検索質疑回答するコーナーです。
バッチファイルの作成は、プログラム技術者へ
正当な対価を支払って、業務委託するべき内容です。
質問文に語弊があったようで申し訳ないです。
バッチファイル作成云々はあくまで僕の知りたいことを具体的に示す為の例ですので、バッチファイル自体を発注したいわけではありません。
処理ができれば中身は何でもいいということであれば、テキストエディタで置換すればいいだけの話なので、ここで発注する必要はないですし。
その点は誤解なきようお願いいたします。
コマンドプロンプトが終わろうとしている現在、DOSバッチで新規処理を書くのは気乗りのしない人が多いでしょう。
せめて PowerShell で書くか、あるいは JScript、あるいは Windows 標準添付の C# で書く方が良いように思います。
また、ファイルが大量に在るのであれば、ファイル名をプログラムにハードコーディングするのではなく、ファイルを格納するフォルダをパラメータで与える仕様の方が適切だと思います。
「自身の置き場所」を基点として動作する仕様も「有り」と言えば有りですね。 プログラム自体をコピーしまくらなければならない気もしますが、それでも良いという場合は確かに有るでしょう。
実行ファイル自体は大した容量にはならないと思いますので、対象フォルダにコピーして使うイメージで考えています。
「自身の置き場所」を基点として動作する仕様も「有り」と言えば有りですね。 プログラム自体をコピーしまくらなければならない気もしますが、それでも良いという場合は確かに有るでしょう。
2020/09/26 00:14:40実行ファイル自体は大した容量にはならないと思いますので、対象フォルダにコピーして使うイメージで考えています。
2020/09/26 17:16:40