以下ことができるソフトを2000ポイントで作成して頂くことはできるでしょうか?一括で大量(1万数千件)のhtmlファイルのファイル名をタイトル名(<title>タイトル名</title>)に変換するようにしたいです。

ファイル名が同じになる場合は、(2)(3)…のようにして下さい。一番使いやすいソフトに2000ポイントとさせて下さい。最低でも15日午後6時まで待ちます。その前に締め切ることはありませんので宜しくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/12/14 18:09:16
  • 終了:--

回答(8件)

id:ito-yu No.1

ito-yu回答回数323ベストアンサー獲得回数142005/12/14 18:22:02

http://e-words.jp/w/OS.html

OSとは 【オペレーティングシステム】 (Operating System) ─ 意味・解説 : IT用語辞典 e-Words

※これは解答ではなく、準備のための質問です

あなたの作業環境を教えてください。

1. OSは何ですか?Windowsですか?Linuxですか?それともMacOSX?

2. htmlはどこに有りますか?ローカルのHDD(やCD)の中?それとも別のサーバ上?

3. htmlが置いてある場所以外に、書き込み権限のある作業用ディレクトリは用意できますか?

id:powan

1 windowsxp

2 hdd

3 すいません。どういった意味かこちらの知識不足でわかりません。

2005/12/14 18:37:51
id:fslasht No.2

fslasht回答回数4ベストアンサー獲得回数02005/12/14 19:15:13

ご希望のソフトを作ってみました。

↑のURLからダウンロードできます。(ファイル名は、change_filename_to_html_title.exe)


実行すると、ダイアログが開きますので、ここにファイル名を変更したいファイルをドロップしてください。(複数のファイルをまとめてドロップできます)

ドロップしたファイルのファイル名を<title>タグにしたがって変更します。(同一ファイル名になる場合は、(2),(3)とファイル名の後ろにつけます)


【制限事項】

・OSは、Windows2000またはWindowsXP

・タイトル名は、次の形式でかならず1行で閉じている必要があります。

a) <title>タイトル</title>

b) <TITLE>タイトル</TITLE>

 ※ タグの大文字小文字は混在できない

・拡張子は、もとのファイル名にかかわらず「html」固定となる

・サブディレクトリ内は処理しません。

 ただし次の手順で回避できます。

 1) 処理したいファイルの格納されたフォルダを右クリックして、「検索(E)...」を選択

 2) 検索条件を入れずに、「検索開始(S)」ボタンを押す

 3) 表示された検索結果を全て選択し、このソフトにドロップする。


【注意事項】

本ソフトを使用したことによって生じたいかなる障害についても、弊社はその保障義務を一切負わないものとします。

重要なファイルは必ずバックアップを取った上でご使用ください。


(↑いちおうお約束なので…)

id:powan

ありがとうございます。あとで確認させて頂きます。サブディレクトリ内も処理できるように(できれば選択で)して頂けるとありがたいです。

2005/12/14 20:04:09
id:tame_chi No.3

tame_chi回答回数42ベストアンサー獲得回数02005/12/14 19:38:35

出来ました どうしましょうか?

id:powan

問題なければ、どこかのhp上でダウンロードできるようにしていただければ、助かります。

2005/12/14 20:05:43
id:akibare No.4

akibare回答回数157ベストアンサー獲得回数52005/12/14 22:14:05

ポイント280pt

URLはダミーです。これくらいの処理はスクリプトでやっちゃいましょう!コードの修正が簡単、何もダウンロードしなくても良い、処理が透明、と良いことだらけです。


使い方は、下記のスクリプトをコピー⇒メモ帳を起動⇒ペースト⇒[編集-置換]で、全角”から半角”に全部置換⇒同様に全角¥を半角¥に置換⇒source_folder変数を修正⇒hoge.jsに保存⇒hoge.jsをダブルクリック⇒終わり


// 特定フォルダのファイル名をファイルの<title>.htmlに変更すスクリプト

// * <title></title>は同一行になければなりません(残念ながら)

// * サブフォルダに対しても繰り返し実行します

// * ファイル名に使えない文字列 (¥ | / : ? ” < > *)は消去されます

// * 実行したいフォルダをvar source_folder = の所で指定してください

// * 実行するには、このスクリプトを適当な名前.js(例:title2fname.js)に変更して

// ファイルをダブルクリックしてください


var source_folder = ”C:¥html”

var fso = new ActiveXObject(”Scripting.FileSystemObject”);

var folder = fso.GetFolder(source_folder);


// まずトップフォルダを処理する

title2filename(folder);


function title2filename(folder)

{

// フォルダの中のファイル全部に対して実行

var fc = new Enumerator(folder.files);

for (; !fc.atEnd(); fc.moveNext())

{

var f = fc.item();

var file = fso.OpenTextFile(f.path);


// ファイルの最後まで繰り返す

while (!file.AtEndOfStream)

{

// 一行読み込む

var line = file.ReadLine();


// 正規表現でタイトルを検索

var title = line.match(/<title>(.*)<¥/title>/i);

if (title)

{

// 見つかったら禁止文字列を消去

title = title[1].replace(/[¥?¥/¥¥:><¥*¥|]/g, ””);


// ファイル名を変える前にファイルを閉じないとね

file.close();


// ファイル名が重複しなくなるまで繰り返す

var prefix = f.ParentFolder.path + ”¥¥”;

var new_f = prefix + title + ”.html”;

for(i = 1; fso.FileExists(new_f); i++)

{

new_f = prefix + title + ”(” + i + ”)” + ”.html”;

}


// ファイル名を変更!

fso.MoveFile(f.path, new_f);

break;

}

}

}


// サブフォルダを同様に処理する

var sfc = new Enumerator(folder.subfolders);

for (; !sfc.atEnd(); sfc.moveNext())

{

title2filename(sfc.item());

}

}

id:powan

ありがとうございます。

2005/12/15 20:12:22
id:goldman No.5

goldman回答回数86ベストアンサー獲得回数02005/12/14 23:29:51

ポイント280pt

いろいろ、出揃いましたね~。

私のは、使い方は簡単です。


機能:


  指定されたディレクトリ配下のすべてのhtmの拡張子を持つファイルから

  titleを検索し、タイトル名を取得しタイトル名をファイル名に変更する。

 

  ※:HTM HTML htm html の拡張子を持つファイルが対象


使い方:


  CHGNAM.EXE HTMLの格納されたディレクトリ名


例)C:¥TEMPのサブディレクリのすべてのサブフォルダのHTMファイルの

  名称を変更する。


  chgnam c:¥temp


以上です。


【制限事項】


・OSは、Windows2000またはWindowsXP 95/98/ME すべてOK!


・タイトル名は、基本1行で完結している必要があるが、空白が前後にあっても

 自動でトリムして、ファイル名を作成する。

・タグの大文字小文字は混在できる。

・拡張子は、もとのファイル名にかかわらず「html」固定となる

・サブディレクトリ内は処理できます。


さて、みなさんの腕前拝見といきましょうか。

id:powan

ありがとうございます。

2005/12/15 20:12:31
id:aki73ix No.6

aki73ix回答回数5224ベストアンサー獲得回数272005/12/15 17:59:25

ポイント280pt

出来ました


【仕様】

・OSはWindows95以降

・タイトル名が複数行にまたがる場合は改行せず、特殊文字は全て削除されます

・タイトル名が128文字を越える場合は強制的に128文字に丸める

<title>は大文字小文字が混在していても構わないが閉じている必要があり

・拡張子は、もとのファイル名に準じます

・サブディレクトリ構成をそのままコピーするか、一つのフォルダにコピーするか指定できますが、同じフォルダや配下のフォルダは指定できません

・<TITLE>~</TITLE> ヘッダがない場合は指定するか、元のファイル名をそのまま使うか選択できます

・TITLE内に最初から(1)(2)(3)...などがついていた場合、同じ名前のファイルがあった場合は foo(2)(2).htmのようになります

・HTMLファイルがEUC/SJIS/UTF-8/JISの場合はチェックしていますが、それ以外の全角文字列が入っていると正常に変換できないと思います


※実行時の注意として、コピー先のフォルダをまず空っぽにしますから、大事なフォルダは指定しないで下さい(一応確認はしてきます)

id:powan

ありがとうございます。

2005/12/15 20:12:35
id:fslasht No.7

fslasht回答回数4ベストアンサー獲得回数02005/12/15 18:09:47

ポイント2000pt

(2回目の回答です)

↑のURLからダウンロードできます。(ファイル名は、change_filename_to_html_title.exe)


【改良点】

サブディレクトリ内も処理するように改良しました。

※改良版は、ウィンドウ内の作成日が「2005/12/15」となっています。


【説明】

実行すると、ダイアログが開きますので、ここにファイル名を変更したいファイルをドロップしてください。(複数のファイルをまとめてドロップできます)

ドロップしたファイルのファイル名を<title>タグにしたがって変更します。(同一ファイル名になる場合は、(2),(3)とファイル名の後ろにつけます)


【制限事項】

・OSは、Windows2000またはWindowsXP

・文字コードはSHIFT JISのみに対応します

・タイトル名は、次の形式でかならず1行で閉じている必要があります。

a) <title>タイトル</title>

b) <TITLE>タイトル</TITLE>

 ※ タグの大文字小文字は混在できない

・拡張子は、もとのファイル名にかかわらず「html」固定となる


【注意事項】

本ソフトを使用したことによって生じたいかなる障害についても、弊社はその保障義務を一切負わないものとします。

重要なファイルは必ずバックアップを取った上でご使用ください。

(↑いちおうお約束なので…)

id:powan

ありがとうございます。

2005/12/15 20:12:43
id:nitscape No.8

nitscape回答回数526ベストアンサー獲得回数02005/12/15 18:24:50

ポイント280pt

htmlファイルのエンコード形式はSJIS、UTF8、EUC...などに対応

処理するのは拡張子がhtmもしくはhtmlのみ

タイトルにハングル文字などが含まれていても処理可能

タイトルに¥?”<>などファイル名に利用できない文字が含まれている場合はその文字を全角文字に変換して使用

タイトルが空白のみから構成される場合はファイル名を変えない

サブフォルダも処理

サブフォルダも含めてタイトルの重複を調べ、重複がある場合は(2)などを付加する

(2)などを付加した後にほかのファイル名と重複がある場合はさらに(2)などを付加する

Windows2000/XPのみ対応

Internet Explorerがタイトルを認識できない場合はタイトルが文字化けすることがある

内部でInternet Explorerを起動しているので遅い


という感じで処理を行っています。ファイル名の変更が始まる前ならキャンセルが可能になっています。

id:powan

ありがとうございます。

とりあえず、終了させて頂きます。

ポイント配分は、1週間以内に対応します。

2005/12/19 19:51:38

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません