http://itpro.nikkeibp.co.jp/article/COLUMN/20060731/244742/
上記サイトに書いてあるGrep置換えのプログラムを少し改良したいのです。
用途としては、Webサイトリリース時の発行したプログラムをGrep置換します。
現状のプログラムでは検索語句と置換語句が入力方式なので、オペレーションミスが
起こりえると思います。
なので、画面に置換対象サイトをボタンを加え。
そのボタンを押すと置換られる、又はテキストボックスにセットされるようにしたいです。
置換例
発行時
http://itpro.nikkeibp.co.jp/article/test/20060731/244742/
test→site1
発行後
http://itpro.nikkeibp.co.jp/article/site1/20060731/244742/
html
1<html><head><title>htaで一発置換</title> 2<script language="JScript"> 3 4function rep(){ 5 //テキスト・エリアの初期化 6 form1.result.value = ""; 7 //検索語句またはディレクトリ名が空 8 if(!form1.oldword.value || !form1.dir.value){ 9 alert ("ディレクトリまたは検索語句が空です"); 10 return; 11 } 12 13 //各種宣言 14 var fso; 15 fso = new ActiveXObject("Scripting.FileSystemObject"); 16 var strNew = document.form1.newword.value; 17 var strOld = form1.oldword.value; 18 19 var RE = new RegExp(strOld,"gm"); 20 var fldr = fso.GetFolder(form1.dir.value); 21 var flist,x,rt,nts,ts; 22 23 var enu = new Enumerator(fldr.files); 24 for (; !enu.atEnd(); enu.moveNext()){ 25 x = enu.item(); 26 ts = fso.OpenTextFile(x, 1); 27 strOrg = ts.ReadAll(); 28 ts.Close(); 29 rt = strOrg.replace(RE, strNew); 30 if(rt!=strOrg){ 31 nts = fso.CreateTextFile(x, true); 32 nts.Write (rt); 33 nts.Close(); 34 form1.result.value += x + "\n"; 35 } 36 } 37 alert("置換完了しました"); 38} 39 40 41</script></head> 42<body ><form name="form1"> 43<p>検索対象は指定されたディレクトリのすべてのファイルになります。</p> 44<p>ディレクトリの指定(例: C:\foo\bar)<br /> 45<input type="text" size="50" name="dir"></p> 46<table><tr> 47<td>検索語句</td> 48<td>置換語句</td> 49</tr><tr><td> 50<input type="text" name="oldword">→</td> 51<td><input type="text" name="newword"></td></tr> 52</table><br /> 53<p><input type="button" value="置換実行" onClick="rep()"></p> 54<p>置換されたファイルの一覧 55<textarea name="result" cols="50" rows="20"></textarea></p> 56</form></body></html> 57コード
回答1件
あなたの回答
tips
プレビュー