ファイル名が同じになる場合は、(2)(3)…のようにして下さい。一番使いやすいソフトに2000ポイントとさせて下さい。最低でも15日午後6時まで待ちます。その前に締め切ることはありませんので宜しくお願いいたします。
OSとは 【オペレーティングシステム】 (Operating System) ─ 意味・解説 : IT用語辞典 e-Words
※これは解答ではなく、準備のための質問です
あなたの作業環境を教えてください。
1. OSは何ですか?Windowsですか?Linuxですか?それともMacOSX?
2. htmlはどこに有りますか?ローカルのHDD(やCD)の中?それとも別のサーバ上?
3. htmlが置いてある場所以外に、書き込み権限のある作業用ディレクトリは用意できますか?
ご希望のソフトを作ってみました。
↑の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) 表示された検索結果を全て選択し、このソフトにドロップする。
【注意事項】
本ソフトを使用したことによって生じたいかなる障害についても、弊社はその保障義務を一切負わないものとします。
重要なファイルは必ずバックアップを取った上でご使用ください。
(↑いちおうお約束なので…)
ありがとうございます。あとで確認させて頂きます。サブディレクトリ内も処理できるように(できれば選択で)して頂けるとありがたいです。
Yahoo! JAPAN
出来ました どうしましょうか?
問題なければ、どこかのhp上でダウンロードできるようにしていただければ、助かります。
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());
}
}
ありがとうございます。
いろいろ、出揃いましたね~。
私のは、使い方は簡単です。
機能:
指定されたディレクトリ配下のすべてのhtmの拡張子を持つファイルから
titleを検索し、タイトル名を取得しタイトル名をファイル名に変更する。
※:HTM HTML htm html の拡張子を持つファイルが対象
使い方:
CHGNAM.EXE HTMLの格納されたディレクトリ名
例)C:¥TEMPのサブディレクリのすべてのサブフォルダのHTMファイルの
名称を変更する。
chgnam c:¥temp
以上です。
【制限事項】
・OSは、Windows2000またはWindowsXP 95/98/ME すべてOK!
・タイトル名は、基本1行で完結している必要があるが、空白が前後にあっても
自動でトリムして、ファイル名を作成する。
・タグの大文字小文字は混在できる。
・拡張子は、もとのファイル名にかかわらず「html」固定となる
・サブディレクトリ内は処理できます。
さて、みなさんの腕前拝見といきましょうか。
ありがとうございます。
出来ました
【仕様】
・OSはWindows95以降
・タイトル名が複数行にまたがる場合は改行せず、特殊文字は全て削除されます
・タイトル名が128文字を越える場合は強制的に128文字に丸める
<title>は大文字小文字が混在していても構わないが閉じている必要があり
・拡張子は、もとのファイル名に準じます
・サブディレクトリ構成をそのままコピーするか、一つのフォルダにコピーするか指定できますが、同じフォルダや配下のフォルダは指定できません
・<TITLE>~</TITLE> ヘッダがない場合は指定するか、元のファイル名をそのまま使うか選択できます
・TITLE内に最初から(1)(2)(3)...などがついていた場合、同じ名前のファイルがあった場合は foo(2)(2).htmのようになります
・HTMLファイルがEUC/SJIS/UTF-8/JISの場合はチェックしていますが、それ以外の全角文字列が入っていると正常に変換できないと思います
※実行時の注意として、コピー先のフォルダをまず空っぽにしますから、大事なフォルダは指定しないで下さい(一応確認はしてきます)
ありがとうございます。
(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」固定となる
【注意事項】
本ソフトを使用したことによって生じたいかなる障害についても、弊社はその保障義務を一切負わないものとします。
重要なファイルは必ずバックアップを取った上でご使用ください。
(↑いちおうお約束なので…)
ありがとうございます。
htmlファイルのエンコード形式はSJIS、UTF8、EUC...などに対応
処理するのは拡張子がhtmもしくはhtmlのみ
タイトルにハングル文字などが含まれていても処理可能
タイトルに¥?”<>などファイル名に利用できない文字が含まれている場合はその文字を全角文字に変換して使用
タイトルが空白のみから構成される場合はファイル名を変えない
サブフォルダも処理
サブフォルダも含めてタイトルの重複を調べ、重複がある場合は(2)などを付加する
(2)などを付加した後にほかのファイル名と重複がある場合はさらに(2)などを付加する
Windows2000/XPのみ対応
Internet Explorerがタイトルを認識できない場合はタイトルが文字化けすることがある
内部でInternet Explorerを起動しているので遅い
という感じで処理を行っています。ファイル名の変更が始まる前ならキャンセルが可能になっています。
ありがとうございます。
とりあえず、終了させて頂きます。
ポイント配分は、1週間以内に対応します。
1 windowsxp
2 hdd
3 すいません。どういった意味かこちらの知識不足でわかりません。