- 締切済み
英文が読み込まれたcsvファイルを加工するバッチ
バッチ作成初心者です。 サーバからの英文ログがServer.csvに書き出されます。 英文はA列に取り込まれ、200行程度存在します。 A 1 Users of 1234: (Total of 1 use; Total of 0 use) 2 Users of 5678: (Total of 3 use; Total of 1 use) ・ ・ 200 Users of WXYZ: (Total of 6 use; Total of 0 use) 英文の半角スペースを判断基準とし、半角スペースが存在したら単語を右のセルに入れる ようにするには、どのようにバッチ作成すればよいでしょうか? A B C D E F G H I J K 1 Users of 1234: (Total of 1 use; Total of 0 use) 2 Users of 5678: (Total of 3 use; Total of 1 use) ・ ・ 200 Users of WXYZ: (Total of 6 use; Total of 0 use) また変換後のcsvはリネームして保存をしたいです。Server.csv→after.csv なにとぞお力添えをお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
元のデータは A列しかないのでしょうか? それならば、ファイル内の「半角スペース」を「カンマ」に置換すれば良いように思いますね。 以下にファイル内の文字列を置換するバッチのサンプルがありますので、参考にしてみてはいかがでしょうか。(リネームして保存してますし) http://vaindespair.blogspot.jp/2012/03/blog-post_14.html もっとも、質問文を見る限り、最終的には EXCEL で読むことが目的ですかね。そうであれば、区切り文字を半角スペースとして EXCEL で直接読み込んだほうが速いのでは。以下のページの解説で「カンマ」を選んでいるところで「スペース」を選べば良いですね。 https://wagby.com/manual/31-csv-upload-exceltips.html
お礼
shibata様 アドバイスを頂きながらご返答遅くなり申し訳ございませんでした。 ファイル内文字列置換バッチのサンプルを参考に試してみましたが、結果うまくいきませんでした。まず試したことはバッチで文字置換できるかどうか、という根本の部分です。 (1)ローカルCドライブにA.txtを作成し、中身はUを含む適当な文字列を入れた A.txtの中身 UjadfaskdklZShshjdghraszkf njsaundjsadinsUUUUmkdwlfrn (2)変換文字は U を K にする (3)文字変換後は、ローカルCドライブにB.txtを出力するようにした @echo off set ofilename=C:\B.txt type nul >%ofilename% setlocal ENABLEDELAYEDEXPANSION for /f "delims=" %%A in (C:\A.txt) do ( set line=%%A echo !line:"U"="K"!>>%ofilename% ) endlocal 上記で試した結果、U→Kに変換されず、A.txtの内容がそのままB.txtに出力されました。 ソースに書かれている処理が1行ごとに何を行っているかを読み解かなければ、変換されない原因を理解できないと自身の浅学を認識しております。 最終的には、 タスクスケジューラを使用し、サーバログを1時間ごとに取得。 サーバログ内 Users of 1234: (Total of 1 use; Total of 0 use) の中の Users of ○○○○: (Total of △ use; Total of □ use) ○、△、□を集計に利用 を行います。 サーバは24時間365日稼働しているので、バッチで自動に行いたいです。