人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

今、CSVファイルがあります。
CSVファイル名をカラムの先頭列に挿入する形で記載したいです。(全レコードに対して)

このように加工したいCSVファイルは約1000あります。
簡単に実施できる方法がありましたらご教授ください。
どうぞよろしくお願い致します。

●質問者: yoshifuku
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● TransFreeBSD
●100ポイント ベストアンサー

環境が分からないので一つはwsh。以下を適当なファイル名+".vbs"で保存してダブルクリック。
ただしテストはしてない。バックアップを忘れないでね。

Option Explicit

Dim folder, file
' "C:\work"を対象ファイルのフォルダ名に変えてください
Set folder = WScript.CreateObject("Scripting.FileSystemObject").GetFolder("C:\work")

For Each file In folder.Files
 Dim filename, st_new, st_org
  ' 既存のファイルの名前を変更
 filename = file.Name
 file.Name = filename & ".org" ' 確かこれであってたはず
  ' 新しいファイルを作って書き出す
 Set st_new = folder.CreateTextFile(filename) 
 Set st_org = file.OpenAsTextStream(1)
 Do While st_org.AtEndOfStream <> True
 st_new.WriteLine = filename & "," & st_org.ReadLine
 Loop
 st_org.Close
 st_new.Close
Next

perlが使えるならこっちが簡単。

cd work
perl -p -i.org -e '$_="$ARGV,$_"' *

yoshifukuさんのコメント
いつもありがとうございます。 残念ながら以下のメッセージでした。もし手がかりになればお願いします。 --------------------------- Windows Script Host --------------------------- スクリプト:C:\Users\TM\Desktop\5\1.vbs 行:16 文字:9 エラー:オブジェクトでサポートされていないプロパティまたはメソッドです。: 'WriteLine' コード:800A01B6 ソース: Microsoft VBScript 実行時エラー --------------------------- OK ---------------------------

TransFreeBSDさんのコメント
すみません。ポカしてました。下記上16行目を下の様に変えてください。 >|vb| st_new.WriteLine = filename & "," & st_org.ReadLine ||< >|vb| st_new.WriteLine(filename & "," & st_org.ReadLine) ||<

yoshifukuさんのコメント
完璧でした! 非常に困っていたのですが、完全解決できました。 今後も似たような質問をするかもしれませんが、その際はどうぞよろしくお願い致します。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ