プロが教える店舗&オフィスのセキュリティ対策術

コマンドプロンプトのバッチファイルを用いてテキストを変換したい。
変換前
"14/01/23 10:07",+00592,+00601
"14/01/23 11:00",+00596,+00605

変換後
"14/01/23 10:07"
+00592
+00601
"14/01/23 11:00"
+00596
+00605

,(カンマ)を改行すれば良いと思いますが、
教えてください。

質問者からの補足コメント

  • 早速の返信ありがとです。
    補足がありまして、後ろの数値部の数が不明な場合があり、指定した分まで改行したいです。
    "14/01/23 10:07",+00592,+00601ココ以降も同じように続く「,+00666」などただし数は不明

    今回でいえば
    「1」をsetなどで宣言しておいて
    変換前
    "14/01/23 10:07",+00592,+00601
    変換後
    "14/01/23 10:07"
    +00592

    としたい。

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/06/01 13:51

A 回答 (4件)

for /f "delims=, tokens=1-3" %%I in (test.txt) do (


echo %%I
echo %%J
echo %%K
)
この回答への補足あり
    • good
    • 1

遅延環境変数を使って多段にしてはどうでしょう。



http://pastebin.com/2DQ1FsRC
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にしてもらいます。

お礼日時:2016/06/02 12:40

これ, てきとうにスクリプト言語を使えば 10行かそこらでできちゃうレベルなんだよなぁ....



うん, 「コマンドプロンプトのバッチファイル」という変態的な縛りを捨ててしまうのが最もシンプルでよい.
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にしてもらいます。

お礼日時:2016/06/02 12:40

「コマンドプロンプトのバッチファイル」という変態的な縛りが大好きな私がきーまーしーたーよー!!!


バッチ可愛いよバッチ(*´Д`)ハァハァ

「後ろの数値部の数が不明」ってのが不明だったんで、日本語勉強しなおしてきました。
ようはこうですよね?

数値部の数が2つ
"14/01/23 10:07",+00592,+00601
数値部の数が3つ
"14/01/23 10:07",+00592,+00601,+00603

もしかしたら4つになるかもしれない。ワカンネーヨー!
で、行によって違うから、システム側で2つまでとか定めておきたい、という話。
ぶっちゃけると、回答1さんのコードで十分なわけですが。

数値部の数の変更しやすさを改良したコードを載せます
tokenEndをいじるだけでOK

――――――――――――――ここから―――――――――――――――

@echo off
setlocal enabledelayedexpansion

rem 取り出す最初の列番
set tokenSt=1
rem 取り出す最後の列番(数値の数が1なら「日付の列」+「数値の列」で2とする)
rem 上限は21まで試したが正常に作動
set tokenEnd=2

rem for文の「tokens=1-2」作成
set token=%tokenSt%-%tokenEnd%


rem 取得ファイルと出力ファイル名のフルパス
set inFile=%~dp0list.txt
set outFile=%~dp0list_out.txt

rem 出力ファイルの初期化
type nul>"%outFile%"

for /F "usebackq delims=" %%a in ("%inFile%") do (

set /a n=0
rem 行を列ごとに分解して変数に
for %%b in (%%a) do (
set /a n=n+1
set [!n!]=%%b
)

rem 出力する
for /l %%c in (%tokenSt%,1,%tokenEnd%) do (
if %%c LEQ !n! (
echo ![%%c]!
echo ![%%c]!>>"%outFile%"
)
)

)
pause
exit



――――――――――――――ここまで―――――――――――――――

行がない場合も空行を出力したい場合は、、
ifのかっこの後に「 else (echo,>>"%outFile%")」をつければOK
頭の半角スペース忘れないように。

以上
    • good
    • 1
この回答へのお礼

ありがとうございます。
伝わりづらい文章で申し訳ないです。やりたいことができました。
行数を指定した分だけ改行したかったのです。
参考になりました。

お礼日時:2016/06/02 12:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!