アプリ版:「スタンプのみでお礼する」機能のリリースについて

CSVファイルをタブ区切りにする手順は
ツールーバーの
【データ】→【区切り位置】→カンマ、タブ
などの設定で出来ると思います。

その手順を何度も繰り返すのが面倒なため、
バッチファイルを作成しようと考えています。

やりたい事としまして、
(1) .csvファイルをコマンドプロンプトに入れる(ドラックドロップ)
(2) カンマ区切り→タブ区切りに変換し、上書き保存

ということをコマンドプロンプト(バッチファイル)で行いたいです。
関数としては for /f を使うのだと思うのですが、
よく分からないため教えていただきたいです。

宜しくお願いいたします。

A 回答 (6件)

ここは、ツールに頼りましょう。



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"

お試し下さい。
    • good
    • 3

#1 への補足のところ,


「試してみたところ」
というのは具体的にはどう「試してみた」んでしょうか?
    • good
    • 0

ANo.1です。



> 試してみたところ、空のテキストファイルが出力されてしまいました(タブはしっかり変更しました。)

そうですか、こちらの環境では動いていますので、環境の問題か、CSVファイルが特殊な物かのどちらかでしょうか。
環境(OS)と、どの様なCSVファイルを変換するつもりなのかサンプルを提示してもらえますか。
    • good
    • 0

>文書内にタブやカンマ、改行があったらどうするのですか?


普通そういうのを考慮しているcsv形式のファイルは「"」で囲ってあります。
    • good
    • 0

文書内にタブやカンマ、改行があったらどうするのですか?


CSVはアプリケーション依存でエクセルの出力するCSVはエクセル流です。
一旦エクセルで開いて別名保存をするか、
perlを使うと良いです。
    • good
    • 0

> (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

こんな感じで如何でしょう。

この回答への補足

回答ありがとうございます。
試してみたところ、空のテキストファイルが出力されてしまいました(タブはしっかり変更しました。)
やはり、バッチファイルで組むのは難しそうですね…

補足日時:2013/07/19 08:38
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています