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

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

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

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

Q&A

解決済

1回答

6482閲覧

バッチを用いて、txtデータをカラム毎に改行したい

aki_matrix

総合スコア3

バッチファイル

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

0グッド

0クリップ

投稿2020/07/27 10:16

バッチファイルで実現可能か、分からないのですが、、、

AA12345678BB12345678CC 2 4 6 8DD1 3 5 7 EE12345678

のようなtxtデータを

AA12345678
BB12345678
CC 2 4 6 8
DD1 3 5 7
EE12345678

と10カラム毎に改行し、別txtへ出力する事は出来るのでしょうか?

ざっくりとした質問で申し訳ないですが、お願い致します。

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

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

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

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

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

yambejp

2020/07/27 10:21

windowsのcmdですか?powershell? WSHは想定していないですか?
aki_matrix

2020/07/27 10:41

windowsのcmd(.batで作成する事)を想定していました。
guest

回答1

0

ベストアンサー

可能かと言えば、概ね可能です。

CMD

1@echo off 2( 3for /f "delims=" %%A in (in.txt) do call :SUB "%%~A" 4)>out.txt 5exit /b 6 7:SUB 8set "A=%~1" 9echo=%A:~0,10% 10echo=%A:~10,10% 11echo=%A:~20,10% 12echo=%A:~30,10% 13echo=%A:~40,10%

ファイルの中身が英数字や一部の記号だと大丈夫ですが、"など一部の記号は駄目です。

#追記
長さを決めないとすると、

CMD

1@echo off 2setlocal enabledelayedexpansion 3( 4for /f "delims=" %%A in (in.txt) do call :SUB "%%~A" 5)>out.txt 6type out.txt 7exit /b 8 9:SUB 10set "A=%~1" 11set N=0 12:LOOP 13if "!A:~%N%,10!"=="" exit /b 14echo=!A:~%N%,10! 15set /a N+=10 16goto LOOP

投稿2020/07/27 10:34

編集2020/07/27 11:00
otn

総合スコア85901

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

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

aki_matrix

2020/07/27 10:44

回答ありがとうございます。 後出しになってしまうのですが、実際は確実に5行で終わるテキストデータでは無く、何行になるか分からないテキストデータを想定していました。 横に長いデータでも耐えうるパターンも作れるものなのでしょうか?
otn

2020/07/27 10:52

途中に10文字以上連続した空白が無いのであれば、 簡単には、ひたすら書けば可能です。途中で終わることも考えると、 if not "%A:~40,10%"=="" echo=%A:~40,10% みたいなのを必要なだけ書けばいいです。 ループで書く事も可能ですが。
aki_matrix

2020/07/28 09:03

ありがとうございます! テスト的に試した文字列では、上手く出力する事が出来ました。 実際に組み込もうとしたところ、上手く出力されなかった為、調査したところ、 「%」が含まれている文字列を対象とした場合、上手く出力出来ていない事が分かりました。 対象の文字列に%が含まれている場合は、batファイルでは、上手く処理が出来ないものなのでしょうか?
otn

2020/07/28 09:06

そうですね。どうしようもないです。
aki_matrix

2020/07/29 01:25

承知致しました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問