- 締切済み
バッチファイルの作り方(CSV→タブ区切り)
CSVファイルをタブ区切りにする手順は ツールーバーの 【データ】→【区切り位置】→カンマ、タブ などの設定で出来ると思います。 その手順を何度も繰り返すのが面倒なため、 バッチファイルを作成しようと考えています。 やりたい事としまして、 (1) .csvファイルをコマンドプロンプトに入れる(ドラックドロップ) (2) カンマ区切り→タブ区切りに変換し、上書き保存 ということをコマンドプロンプト(バッチファイル)で行いたいです。 関数としては for /f を使うのだと思うのですが、 よく分からないため教えていただきたいです。 宜しくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- RURUFOU
- ベストアンサー率55% (5/9)
ここは、ツールに頼りましょう。 WINDOWSを使っているという前提で説明します。 これ、カンマ区切り→タブ区切りを行うツールです。 http:// sourceforge.jp/projects/csvpp/downloads/43750/csvtab106.lzh このファイルを解凍すると、CSVTAB.EXEというプログラムが出てきますので バッチファイルのあるフォルダに置くか、WINDOWSフォルダに置いて下さい。 バッチファイルは、こんな感じで CSVからTAB区切り.CMD TYPE "%~dpnx1" | CSVTAB - "%~dpnx1" このバッチファイルにCSVファイルをドロップすれば 元のファイルをTAB区切りに変換できます。 ただ、前の回答者さんも上書きは推奨していませんので 別ファイルに保存する方が無難かと。 他の回答者さんが気にされていた セル内の改行はこれで対応します。 https:// sourceforge.jp/projects/csvpp/downloads/36413/csvcellretchg102.lzh このファイルを解凍すると、CSVCELLRETCHG2.EXEというプログラムが出てきますので これもCSVTAB.EXEと同じ所に置いてから CSVからTAB区切り。セル内改行もOK.CMD TYPE "%~dpnx1" | CSVCELLRETCHG2 - - | CSVTAB - "%~dpnx1" お試し下さい。
- Tacosan
- ベストアンサー率23% (3656/15482)
#1 への補足のところ, 「試してみたところ」 というのは具体的にはどう「試してみた」んでしょうか?
- mt2008
- ベストアンサー率52% (885/1701)
ANo.1です。 > 試してみたところ、空のテキストファイルが出力されてしまいました(タブはしっかり変更しました。) そうですか、こちらの環境では動いていますので、環境の問題か、CSVファイルが特殊な物かのどちらかでしょうか。 環境(OS)と、どの様なCSVファイルを変換するつもりなのかサンプルを提示してもらえますか。
- iioi
- ベストアンサー率26% (22/84)
>文書内にタブやカンマ、改行があったらどうするのですか? 普通そういうのを考慮しているcsv形式のファイルは「"」で囲ってあります。
- ORUKA1951
- ベストアンサー率45% (5062/11036)
文書内にタブやカンマ、改行があったらどうするのですか? CSVはアプリケーション依存でエクセルの出力するCSVはエクセル流です。 一旦エクセルで開いて別名保存をするか、 perlを使うと良いです。
- mt2008
- ベストアンサー率52% (885/1701)
> (1) .csvファイルをコマンドプロンプトに入れる(ドラックドロップ) ↑は、バッチファイルのアイコンの上にCSVファイルをドロップするという意味かなぁと勝手に解釈しました。 また、ファイルの上書きはお勧めしませんので、今回は「mkFile.txt」と言うテキストファイルに変換結果を出力させています。 なお、この掲示板はTabを削除して表示してしまうっぽいので、タブを「*」に置き換えました。実際のBatファイルでは「*」の部分にタブを入力してください。 @echo off set mkfilename=mkFile.txt type nul >%mkfilename% setlocal ENABLEDELAYEDEXPANSION for /f "delims=" %%A in (%1) do ( set line=%%A echo !line:,=*!>>%mkfilename% ) endlocal こんな感じで如何でしょう。
補足
回答ありがとうございます。 試してみたところ、空のテキストファイルが出力されてしまいました(タブはしっかり変更しました。) やはり、バッチファイルで組むのは難しそうですね…