Files
rappaurio-sae501_502/app/node_modules/cejs/_documents/JsDoc/symbols/src/D__USB_cgi-bin_lib_JS_OS_Windows_job.origin.js.html
2023-09-25 09:41:55 +02:00

341 lines
80 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style>
.KEYW {color: #933;}
.COMM {color: #bbb; font-style: italic;}
.NUMB {color: #393;}
.STRN {color: #393;}
.REGX {color: #339;}
.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
</style></head><body><pre><span class='line'> 1</span> <span class="TOKN"></span><span class="WHIT">
<span class='line'> 2</span> </span><span class="COMM">/**
<span class='line'> 3</span> * @name CeL function for Windows job
<span class='line'> 4</span> * @fileoverview
<span class='line'> 5</span> * 本檔案包含了 Windows job 的 functions。
<span class='line'> 6</span> * @since
<span class='line'> 7</span> */</span><span class="WHIT">
<span class='line'> 8</span>
<span class='line'> 9</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">CeL</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 10</span>
<span class='line'> 11</span> </span><span class="COMM">/**
<span class='line'> 12</span> * 本 module 之 name(id)&lt;span style="text-decoration:line-through;">不設定時會從呼叫時之 path 取得&lt;/span>。
<span class='line'> 13</span> * @type String
<span class='line'> 14</span> * @constant
<span class='line'> 15</span> * @inner
<span class='line'> 16</span> * @ignore
<span class='line'> 17</span> */</span><span class="WHIT">
<span class='line'> 18</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">module_name</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'OS.Windows.job'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 19</span>
<span class='line'> 20</span> </span><span class="COMM">//===================================================</span><span class="WHIT">
<span class='line'> 21</span> </span><span class="COMM">/**
<span class='line'> 22</span> * 若欲 include 整個 module 時,需囊括之 code。
<span class='line'> 23</span> * @type Function
<span class='line'> 24</span> * @param {Function} library_namespace namespace of library
<span class='line'> 25</span> * @param load_arguments 呼叫時之 argument(s)
<span class='line'> 26</span> * @return
<span class='line'> 27</span> * @name CeL.OS.Windows.job
<span class='line'> 28</span> * @constant
<span class='line'> 29</span> * @inner
<span class='line'> 30</span> * @ignore
<span class='line'> 31</span> */</span><span class="WHIT">
<span class='line'> 32</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">code_for_including</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">library_namespace</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">load_arguments</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 33</span>
<span class='line'> 34</span> </span><span class="COMM">// requires</span><span class="WHIT">
<span class='line'> 35</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">eval</span><span class="PUNC">(</span><span class="NAME">library_namespace.use_function</span><span class="PUNC">(</span><span class="WHIT">
<span class='line'> 36</span> </span><span class="WHIT"> </span><span class="STRN">'code.compatibility.is_DOM'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'> 37</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 38</span>
<span class='line'> 39</span>
<span class='line'> 40</span> </span><span class="COMM">/**
<span class='line'> 41</span> * null module constructor
<span class='line'> 42</span> * @class Windows job 的 functions
<span class='line'> 43</span> */</span><span class="WHIT">
<span class='line'> 44</span> </span><span class="NAME">CeL.OS.Windows.job</span><span class="WHIT">
<span class='line'> 45</span> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 46</span> </span><span class="WHIT"> </span><span class="COMM">// null module constructor</span><span class="WHIT">
<span class='line'> 47</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 48</span>
<span class='line'> 49</span> </span><span class="COMM">/**
<span class='line'> 50</span> * for JSDT: 有 prototype 才會將之當作 Class
<span class='line'> 51</span> */</span><span class="WHIT">
<span class='line'> 52</span> </span><span class="NAME">CeL.OS.Windows.job</span><span class="WHIT">
<span class='line'> 53</span> </span><span class="PUNC">.</span><span class="NAME">prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 54</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 55</span>
<span class='line'> 56</span>
<span class='line'> 57</span>
<span class='line'> 58</span>
<span class='line'> 59</span>
<span class='line'> 60</span>
<span class='line'> 61</span>
<span class='line'> 62</span>
<span class='line'> 63</span>
<span class='line'> 64</span>
<span class='line'> 65</span>
<span class='line'> 66</span>
<span class='line'> 67</span>
<span class='line'> 68</span> </span><span class="COMM">// 有關安裝的部分</span><span class="WHIT">
<span class='line'> 69</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">install</span><span class="PUNC">(</span><span class="NAME">dir</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="COMM">//move files: input base dir</span><span class="WHIT">
<span class='line'> 70</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">getResource</span><span class="PUNC">(</span><span class="STRN">"filelist"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="REGX">/[\r\n]+/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//.replace(/[\r\n]+/g,"\n").split('\n')</span><span class="WHIT">
<span class='line'> 71</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">l.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">&&</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="STRN">'#'</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">'\t'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 72</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">turnToPath</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">f</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">d</span><span class="PUNC">?</span><span class="NAME">isFolder</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="PUNC">(</span><span class="NAME">isFolder</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="NUMB">2</span><span class="PUNC">?</span><span class="NAME">dir</span><span class="PUNC">:</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">d</span><span class="PUNC">+</span><span class="NAME">f</span><span class="PUNC">:</span><span class="NAME">d</span><span class="PUNC">:</span><span class="NAME">dir</span><span class="PUNC">+</span><span class="NAME">f</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 73</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">++</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">mv</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">,</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="NAME">pErr</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">s</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 74</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">)</span><span class="NAME">pLog</span><span class="PUNC">(</span><span class="STRN">'フォルダ '</span><span class="PUNC">+</span><span class="NAME">d</span><span class="PUNC">+</span><span class="STRN">' の作成を'</span><span class="PUNC">+</span><span class="PUNC">(</span><span class="NAME">isFolder</span><span class="PUNC">(</span><span class="NAME">d</span><span class="PUNC">,</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">?</span><span class="STRN">'成功'</span><span class="PUNC">:</span><span class="STRN">'失敗'</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="STRN">'した'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 75</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'> 76</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">)</span><span class="NAME">pLog</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">+</span><span class="STRN">"/"</span><span class="PUNC">+</span><span class="NAME">c</span><span class="PUNC">+</span><span class="STRN">"filesの移動に成功した"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 77</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'> 78</span>
<span class='line'> 79</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">rmProg</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 80</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">getResource</span><span class="PUNC">==</span><span class="STRN">'undefined'</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 81</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">,</span><span class="NAME">l</span><span class="PUNC">=</span><span class="NAME">getResource</span><span class="PUNC">(</span><span class="STRN">"proglist"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="REGX">/\r\n/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//.replace(/[\r\n]+/g,"\n").split('\n')</span><span class="WHIT">
<span class='line'> 82</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">l.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">l</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">'\t'</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">fso.DeleteFile</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'> 83</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'> 84</span>
<span class='line'> 85</span>
<span class='line'> 86</span> </span><span class="COMM">// 先決條件測試@.js主檔當沒問題時return 0。此函數若使用到function.js之(其他)功能需include入</span><span class="WHIT">
<span class='line'> 87</span> </span><span class="COMM">// include:getScriptName(),mergeScript()</span><span class="WHIT">
<span class='line'> 88</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">preCheck</span><span class="PUNC">(</span><span class="NAME">argumentCount</span><span class="PUNC">,</span><span class="NAME">ver</span><span class="PUNC">,</span><span class="NAME">mFN</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// argument數,最低版本,若ver&lt;5.1時合併檔名</span><span class="WHIT">
<span class='line'> 89</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">SN</span><span class="PUNC">=</span><span class="NAME">getScriptName</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">WshShell</span><span class="PUNC">=</span><span class="NAME">WScript.CreateObject</span><span class="PUNC">(</span><span class="STRN">"WScript.Shell"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 90</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">argumentCount</span><span class="PUNC">)</span><span class="NAME">argumentCount</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 91</span>
<span class='line'> 92</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">WScript.Interactive</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 93</span> </span><span class="WHIT"> </span><span class="NAME">WshShell.Popup</span><span class="PUNC">(</span><span class="STRN">'This program must run in interactive mode!\n此程式需執行於互動模式'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">SN</span><span class="PUNC">,</span><span class="NUMB">48</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 94</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">5</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 95</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'> 96</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">WScript.Arguments.length</span><span class="PUNC">></span><span class="NAME">argumentCount</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 97</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">WScript.Arguments.ShowUsage</span><span class="PUNC">==</span><span class="STRN">'unknown'</span><span class="PUNC">||</span><span class="NAME">WScript.Arguments.ShowUsage</span><span class="PUNC">)</span><span class="NAME">WScript.Arguments.ShowUsage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 98</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">WshShell.Popup</span><span class="PUNC">(</span><span class="STRN">'Error arguments!\n引數錯誤'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">SN</span><span class="PUNC">,</span><span class="NUMB">16</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'> 99</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">6</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>100</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="COMM">//else if(2==WshShell.Popup("此程式應用於帳目處理。",0,"確定執行?",1+64))return 4;</span><span class="WHIT">
<span class='line'>101</span> </span><span class="WHIT"> </span><span class="COMM">// 以上可置於.wsf中。</span><span class="WHIT">
<span class='line'>102</span>
<span class='line'>103</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">ver</span><span class="PUNC">||</span><span class="NAME">ver</span><span class="PUNC">&lt;</span><span class="NUMB">5</span><span class="PUNC">)</span><span class="NAME">ver</span><span class="PUNC">=</span><span class="NUMB">5</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">mFN</span><span class="PUNC">)</span><span class="NAME">mFN</span><span class="PUNC">=</span><span class="STRN">'process'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>104</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">checkVer</span><span class="PUNC">==</span><span class="STRN">'function'</span><span class="PUNC">)</span><span class="NAME">checkVer</span><span class="PUNC">(</span><span class="NAME">ver</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 5.1起才能用.wsf(windows script file)控制</span><span class="WHIT">
<span class='line'>105</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">WScript.Version</span><span class="PUNC">></span><span class="NUMB">5</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">WshShell.Popup</span><span class="PUNC">(</span><span class="STRN">'請執行 '</span><span class="PUNC">+</span><span class="NAME">SN</span><span class="PUNC">+</span><span class="STRN">'.wsf 檔!'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">SN</span><span class="PUNC">+</span><span class="STRN">': 不是執行這個檔喔!'</span><span class="PUNC">,</span><span class="NUMB">48</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">7</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>106</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">mergeScript</span><span class="PUNC">(</span><span class="NAME">mFN</span><span class="PUNC">+</span><span class="STRN">'.js'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">WshShell.Popup</span><span class="PUNC">(</span><span class="STRN">'合併檔案失敗!'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">SN</span><span class="PUNC">,</span><span class="NUMB">16</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">8</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>107</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>108</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">fso.CopyFile</span><span class="PUNC">(</span><span class="NAME">SN</span><span class="PUNC">+</span><span class="STRN">'.ini'</span><span class="PUNC">,</span><span class="NAME">mFN</span><span class="PUNC">+</span><span class="STRN">'.ini'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// copy .ini</span><span class="WHIT">
<span class='line'>109</span> </span><span class="WHIT"> </span><span class="NAME">WshShell.Popup</span><span class="PUNC">(</span><span class="STRN">'請設定好 '</span><span class="PUNC">+</span><span class="NAME">mFN</span><span class="PUNC">+</span><span class="STRN">'.ini\n之後您可試試 '</span><span class="PUNC">+</span><span class="NAME">mFN</span><span class="PUNC">+</span><span class="STRN">'.js 檔,但並不一定能順利執行。'</span><span class="PUNC">,</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">SN</span><span class="PUNC">+</span><span class="STRN">': 使用的版本過舊!'</span><span class="PUNC">,</span><span class="NUMB">48</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">9</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>110</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>111</span>
<span class='line'>112</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>113</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>114</span>
<span class='line'>115</span>
<span class='line'>116</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>117</span> </span><span class="COMM">/* 2009/6/18 20:46:1
<span class='line'>118</span> 更新功能 update function
<span class='line'>119</span>
<span class='line'>120</span> 可以嘗試將 for_check 合在 install_url 中。
<span class='line'>121</span>
<span class='line'>122</span> */</span><span class="WHIT">
<span class='line'>123</span>
<span class='line'>124</span> </span><span class="NAME">Update</span><span class="PUNC">[</span><span class="NAME">generateCode.dLK</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="STRN">'getU,getFN,simpleWrite'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// ,Debug_for_include,gDate</span><span class="WHIT">
<span class='line'>125</span>
<span class='line'>126</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">Update</span><span class="PUNC">(</span><span class="NAME">for_check</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">install_url</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>127</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Update.check</span><span class="PUNC">(</span><span class="NAME">Update.setup</span><span class="PUNC">(</span><span class="NAME">for_check</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">install_url</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>128</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>129</span>
<span class='line'>130</span> </span><span class="COMM">// base function</span><span class="WHIT">
<span class='line'>131</span>
<span class='line'>132</span> </span><span class="NAME">Update.check</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">force</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>133</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.URL</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>134</span>
<span class='line'>135</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">force</span><span class="PUNC">||</span><span class="PUNC">!</span><span class="NAME">this.version</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>136</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">=</span><span class="NAME">this.parse</span><span class="PUNC">(</span><span class="NAME">getU</span><span class="PUNC">(</span><span class="NAME">this.URL</span><span class="PUNC">)</span><span class="PUNC">||</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>137</span> </span><span class="WHIT"> </span><span class="NAME">this.version_get</span><span class="PUNC">=</span><span class="NAME">d</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>138</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Update.check: version get: ['+this.version_get+']');</span><span class="WHIT">
<span class='line'>139</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>140</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.version</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="NAME">this.version_get</span><span class="PUNC">,</span><span class="NAME">this.version_now</span><span class="PUNC">,</span><span class="NAME">this.URL</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>141</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>142</span>
<span class='line'>143</span> </span><span class="NAME">Update.set_URL</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">for_check</span><span class="PUNC">,</span><span class="NAME">install_url</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>144</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">unchang</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>145</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">for_check</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>146</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">unchang</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>147</span> </span><span class="WHIT"> </span><span class="NAME">unchang</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.URL</span><span class="PUNC">==</span><span class="NAME">for_check</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>148</span>
<span class='line'>149</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Update.set_URL: 設定檢測 URL: &lt;a href="'+for_check+'">'+for_check+'&lt;/a>');</span><span class="WHIT">
<span class='line'>150</span> </span><span class="WHIT"> </span><span class="NAME">this.URL</span><span class="PUNC">=</span><span class="NAME">for_check</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>151</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>152</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">install_url</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>153</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">unchang</span><span class="PUNC">)</span><span class="WHIT">
<span class='line'>154</span> </span><span class="WHIT"> </span><span class="NAME">unchang</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.download_URL</span><span class="PUNC">==</span><span class="NAME">install_url</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>155</span>
<span class='line'>156</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Update.set_URL: 設定程式下載 URL: &lt;a href="'+install_url+'">'+install_url+'&lt;/a>');</span><span class="WHIT">
<span class='line'>157</span> </span><span class="WHIT"> </span><span class="NAME">this.download_URL</span><span class="PUNC">=</span><span class="NAME">install_url</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>158</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>159</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">unchang</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>160</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>161</span>
<span class='line'>162</span> </span><span class="COMM">/*
<span class='line'>163</span> TODO:
<span class='line'>164</span> date 相同時比較大小
<span class='line'>165</span> */</span><span class="WHIT">
<span class='line'>166</span> </span><span class="NAME">Update.up_to_date</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>167</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">>=</span><span class="NAME">this.compare</span><span class="PUNC">(</span><span class="NAME">this.version_now</span><span class="PUNC">,</span><span class="NAME">this.version_get</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>168</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>169</span>
<span class='line'>170</span> </span><span class="NAME">Update.install</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>171</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">=</span><span class="NAME">getFN</span><span class="PUNC">(</span><span class="NAME">decodeURI</span><span class="PUNC">(</span><span class="NAME">location.pathname</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">p</span><span class="PUNC">+</span><span class="STRN">'.new'</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">=</span><span class="NAME">p</span><span class="PUNC">+</span><span class="STRN">'.old'</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">this.after_install</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>172</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Update.install: program path: ['+p+']');</span><span class="WHIT">
<span class='line'>173</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this.download</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>174</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">fso.DeleteFile</span><span class="PUNC">(</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>175</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>176</span> </span><span class="WHIT"> </span><span class="NAME">fso.MoveFile</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="NAME">b</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>177</span> </span><span class="WHIT"> </span><span class="NAME">fso.MoveFile</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>178</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">f</span><span class="PUNC">&&</span><span class="NAME">f</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="NAME">p</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>179</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">&&</span><span class="NAME">f</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>180</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>181</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>182</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>183</span>
<span class='line'>184</span> </span><span class="NAME">Update.check_string</span><span class="PUNC">=</span><span class="STRN">'check_string'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>185</span> </span><span class="NAME">Update.download</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">to_where</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>186</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Update.download: download [&lt;a href="'+this.download_URL+'">'+this.download_URL+'&lt;/a>] to ['+to_where+']');</span><span class="WHIT">
<span class='line'>187</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">=</span><span class="NAME">getU</span><span class="PUNC">(</span><span class="NAME">this.download_URL</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">f</span><span class="PUNC">=</span><span class="NAME">this.after_download</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>188</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">data</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.check_string</span><span class="PUNC">||</span><span class="NAME">data.indexOf</span><span class="PUNC">(</span><span class="NAME">this.check_string</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>189</span> </span><span class="WHIT"> </span><span class="NAME">simpleWrite</span><span class="PUNC">(</span><span class="NAME">to_where</span><span class="PUNC">,</span><span class="NAME">data</span><span class="PUNC">,</span><span class="NAME">TristateTrue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>190</span> </span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">&&</span><span class="NAME">f</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>191</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">data</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>192</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">&&</span><span class="NAME">f</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>193</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>194</span>
<span class='line'>195</span>
<span class='line'>196</span> </span><span class="COMM">// default user function</span><span class="WHIT">
<span class='line'>197</span> </span><span class="NAME">Update.setup</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">for_check</span><span class="PUNC">,</span><span class="NAME">install_url</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>198</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">v</span><span class="PUNC">=</span><span class="NAME">document.getElementById</span><span class="PUNC">(</span><span class="STRN">'version'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>199</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">)</span><span class="NAME">v</span><span class="PUNC">=</span><span class="NAME">v.innerHTML.replace</span><span class="PUNC">(</span><span class="REGX">/[\s\n]+$|^[\s\n]+/g</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>200</span> </span><span class="WHIT"> </span><span class="NAME">this.version_now</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="NAME">v</span><span class="PUNC">||</span><span class="NAME">document.lastModified</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>201</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Update.setup: version now: ['+this.version_now+']');</span><span class="WHIT">
<span class='line'>202</span>
<span class='line'>203</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.set_URL</span><span class="PUNC">(</span><span class="NAME">for_check</span><span class="PUNC">,</span><span class="NAME">install_url</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>204</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>205</span>
<span class='line'>206</span> </span><span class="NAME">Update.parse</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">version_data</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>207</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Date</span><span class="PUNC">(</span><span class="NAME">version_data</span><span class="PUNC">||</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>208</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>209</span>
<span class='line'>210</span> </span><span class="NAME">Update.compare</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">v1</span><span class="PUNC">,</span><span class="NAME">v2</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>211</span> </span><span class="WHIT"> </span><span class="COMM">//sl('Update.compare: ['+v2+'] - ['+v1+'] = '+(v2-v1));</span><span class="WHIT">
<span class='line'>212</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">v2</span><span class="PUNC">-</span><span class="NAME">v1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>213</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>214</span>
<span class='line'>215</span> </span><span class="NAME">Update.after_install</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="NAME">prog</span><span class="PUNC">,</span><span class="NAME">tmp</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// e: Error object</span><span class="WHIT">
<span class='line'>216</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">err</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="NAME">err</span><span class="PUNC">(</span><span class="STRN">'Update.install: 無法替換程式檔 ['</span><span class="PUNC">+</span><span class="NAME">prog</span><span class="PUNC">+</span><span class="STRN">']。新的程式檔置於 ['</span><span class="PUNC">+</span><span class="NAME">tmp</span><span class="PUNC">+</span><span class="STRN">']。'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>217</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">sl</span><span class="PUNC">(</span><span class="STRN">'更新完畢。'</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">warn</span><span class="PUNC">(</span><span class="STRN">'您需要&lt;b onclick="history.go(0);">重新讀取&lt;/b>以完成更新!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>218</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>219</span>
<span class='line'>220</span> </span><span class="NAME">Update.after_download</span><span class="PUNC">=</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="NAME">data</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// e: error code</span><span class="WHIT">
<span class='line'>221</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="NAME">err</span><span class="PUNC">(</span><span class="STRN">'Update.download: 下載 [&lt;a href="'</span><span class="PUNC">+</span><span class="NAME">this.download_URL</span><span class="PUNC">+</span><span class="STRN">'">'</span><span class="PUNC">+</span><span class="NAME">this.download_URL</span><span class="PUNC">+</span><span class="STRN">'&lt;/a>] 發生錯誤!'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>222</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>223</span>
<span class='line'>224</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>225</span>
<span class='line'>226</span> </span><span class="COMM">/* 讀入單行 item=value 之設定
<span class='line'>227</span> !noComment: '#', ';' 起頭、// 之後及 / *..* / 之間將被省略
<span class='line'>228</span> */</span><span class="WHIT">
<span class='line'>229</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">parseData</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">,</span><span class="NAME">noComment</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>230</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">s</span><span class="COMM">/*||s.charAt(0)=='#'*/</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">noComment</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">=</span><span class="NAME">s.replace</span><span class="PUNC">(</span><span class="REGX">/([#;]|\/\/).*$/g</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 去掉單行註解</span><span class="WHIT">
<span class='line'>231</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">c</span><span class="PUNC">,</span><span class="NAME">r</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>232</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">s.match</span><span class="PUNC">(</span><span class="REGX">/\s*\[(.*)\]/</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 分區</span><span class="WHIT">
<span class='line'>233</span>
<span class='line'>234</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// 沒合在一起是為了在較低版本中r之設定可能失敗</span><span class="WHIT">
<span class='line'>235</span> </span><span class="WHIT"> </span><span class="NAME">r</span><span class="PUNC">=</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="STRN">'^\\s*([^=]+)\\s*=\\s*([^\\r\\n]*)'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>236</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">s.match</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>237</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">s.match</span><span class="PUNC">(</span><span class="REGX">/^\s*([^=]+)\s*=\s*([^\r\n]*)/</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// 使用此式可能導致某些問題</span><span class="WHIT">
<span class='line'>238</span>
<span class='line'>239</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="COMM">//if(t=s.match(/^\s*([^=]+?)\s*=\s*([^\r\n]*)/)){ // 後面的:原先簡潔版</span><span class="WHIT">
<span class='line'>240</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>241</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">set</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="NAME">set</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">replace</span><span class="PUNC">(</span><span class="REGX">/\s+$|^\s+/g</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">set</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>242</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">t.charAt</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="STRN">'"'</span><span class="PUNC">||</span><span class="NAME">c</span><span class="PUNC">==</span><span class="STRN">"'"</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>243</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">c</span><span class="PUNC">=</span><span class="NAME">t.match</span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">RegExp</span><span class="PUNC">(</span><span class="STRN">'^'</span><span class="PUNC">+</span><span class="NAME">c</span><span class="PUNC">+</span><span class="STRN">'([^'</span><span class="PUNC">+</span><span class="NAME">c</span><span class="PUNC">+</span><span class="STRN">']*)'</span><span class="PUNC">+</span><span class="NAME">c</span><span class="PUNC">+</span><span class="STRN">'[^\'"]*(.*)$'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>244</span> </span><span class="WHIT"> </span><span class="COMM">//alert('['+set[0]+']=\n'+t+'\n'+c[1]+'\n['+c[2]+']');</span><span class="WHIT">
<span class='line'>245</span> </span><span class="WHIT"> </span><span class="NAME">set</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>246</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">c</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="COMM">//if(c=t.match(/^\s+/))t=t.substr(c.length);</span><span class="WHIT">
<span class='line'>247</span> </span><span class="WHIT"> </span><span class="COMM">//alert('['+t+']');</span><span class="WHIT">
<span class='line'>248</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>249</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">set</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>250</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>251</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>252</span>
<span class='line'>253</span> </span><span class="COMM">/* readin .ini file
<span class='line'>254</span> http://en.wikipedia.org/wiki/Ini_file
<span class='line'>255</span> */</span><span class="WHIT">
<span class='line'>256</span> </span><span class="NAME">parseINI</span><span class="PUNC">[</span><span class="NAME">generateCode.dLK</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="STRN">'initWScriptObj,parseData,ForReading,TristateUseDefault'</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>257</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">parseINI</span><span class="PUNC">(</span><span class="NAME">FN</span><span class="PUNC">,</span><span class="NAME">format</span><span class="PUNC">,</span><span class="NAME">INIunBlock</span><span class="PUNC">,</span><span class="NAME">noComment</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>258</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">INI</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="NAME">datas</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 設定值之陣列,未框起(設定區塊)之值</span><span class="WHIT">
<span class='line'>259</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">INIunBlock</span><span class="PUNC">)</span><span class="NAME">INIunBlock</span><span class="PUNC">=</span><span class="STRN">'[unBlock]'</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 未框起(設定區塊)之值</span><span class="WHIT">
<span class='line'>260</span> </span><span class="WHIT"> </span><span class="NAME">INI</span><span class="PUNC">[</span><span class="NAME">INIunBlock</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>261</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>262</span> </span><span class="WHIT"> </span><span class="NAME">datas</span><span class="PUNC">=</span><span class="NAME">fso.OpenTextFile</span><span class="PUNC">(</span><span class="NAME">FN</span><span class="PUNC">,</span><span class="NAME">ForReading</span><span class="PUNC">,</span><span class="KEYW">false</span><span class="PUNC">,</span><span class="NAME">format</span><span class="PUNC">||</span><span class="NAME">TristateUseDefault</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>263</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// 不用openTemplate():當找不到此.ini檔時pass而不顯示error</span><span class="WHIT">
<span class='line'>264</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">datas</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>265</span> </span><span class="WHIT"> </span><span class="COMM">//if(!INI)INI=[],INI[block=INIunBlock]=[];return 1;</span><span class="WHIT">
<span class='line'>266</span> </span><span class="WHIT"> </span><span class="COMM">//alert('Cannot open:\n'+FN);</span><span class="WHIT">
<span class='line'>267</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>268</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>269</span>
<span class='line'>270</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="NAME">j</span><span class="PUNC">,</span><span class="NAME">index</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">block</span><span class="PUNC">,</span><span class="NAME">inC</span><span class="PUNC">=</span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// index,temp,區塊,於註解中(in comment)</span><span class="WHIT">
<span class='line'>271</span> </span><span class="WHIT"> </span><span class="COMM">//INI=[],INI[block=INIunBlock]=[]; // 每次執行即重設</span><span class="WHIT">
<span class='line'>272</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">datas.AtEndOfStream</span><span class="PUNC">)</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">datas.ReadLine</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>273</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">noComment</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>274</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">t.replace</span><span class="PUNC">(</span><span class="REGX">/\/\/.*/</span><span class="PUNC">,</span><span class="STRN">''</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 處理/*..*/前先處理//</span><span class="WHIT">
<span class='line'>275</span> </span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>276</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">k</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>277</span> </span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// .replace(/\/\*.*?\*\//g,'') 在 ver5 前會出現錯誤</span><span class="WHIT">
<span class='line'>278</span> </span><span class="WHIT"> </span><span class="COMM">//if(!inC&&(i=t.indexOf('/*'))!=-1)if((j=t.indexOf('*/',i+2))==-1){inC=true,t=t.slice(0,i);break;}else k=1,t=t.slice(0,i)+t.substr(j+2);</span><span class="WHIT">
<span class='line'>279</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">inC</span><span class="PUNC">&&</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">t.indexOf</span><span class="PUNC">(</span><span class="STRN">'/*'</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// 處理註解 /*</span><span class="WHIT">
<span class='line'>280</span> </span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">=</span><span class="NAME">i</span><span class="PUNC">+</span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>281</span> </span><span class="WHIT"> </span><span class="KEYW">do</span><span class="PUNC">{</span><span class="NAME">j</span><span class="PUNC">=</span><span class="NAME">t.indexOf</span><span class="PUNC">(</span><span class="STRN">'*/'</span><span class="PUNC">,</span><span class="NAME">j</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t.charAt</span><span class="PUNC">(</span><span class="NAME">j</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="STRN">'\\'</span><span class="PUNC">)</span><span class="NAME">j</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NUMB">2</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">j</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 預防「\*/」</span><span class="WHIT">
<span class='line'>282</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">j</span><span class="PUNC">==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="NAME">inC</span><span class="PUNC">=</span><span class="KEYW">true</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">t.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">t.slice</span><span class="PUNC">(</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">+</span><span class="NAME">t.substr</span><span class="PUNC">(</span><span class="NAME">j</span><span class="PUNC">+</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>283</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>284</span> </span><span class="WHIT"> </span><span class="COMM">//if(inC)if((i=t.indexOf('*/'))==-1)t='';else inC=false,t=t.substr(i+2),k=1;</span><span class="WHIT">
<span class='line'>285</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">inC</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="COMM">// 處理*/</span><span class="WHIT">
<span class='line'>286</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>287</span> </span><span class="WHIT"> </span><span class="KEYW">do</span><span class="PUNC">{</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">t.indexOf</span><span class="PUNC">(</span><span class="STRN">'*/'</span><span class="PUNC">,</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t.charAt</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">==</span><span class="STRN">'\\'</span><span class="PUNC">)</span><span class="NAME">i</span><span class="PUNC">+</span><span class="PUNC">=</span><span class="NUMB">2</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">!=</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">// 預防「\*/」</span><span class="WHIT">
<span class='line'>288</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">==</span><span class="PUNC">-</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="NAME">t</span><span class="PUNC">=</span><span class="STRN">''</span><span class="PUNC">;</span><span class="KEYW">else</span><span class="WHIT"> </span><span class="NAME">inC</span><span class="PUNC">=</span><span class="KEYW">false</span><span class="PUNC">,</span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">t.substr</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">+</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">k</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>289</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>290</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>291</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>292</span> </span><span class="WHIT"> </span><span class="COMM">//if(!t)continue;alert(t);</span><span class="WHIT">
<span class='line'>293</span> </span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">=</span><span class="NAME">parseData</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">,</span><span class="NAME">noComment</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">t</span><span class="PUNC">)</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>294</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">t</span><span class="PUNC">==</span><span class="STRN">'string'</span><span class="PUNC">&&</span><span class="PUNC">!</span><span class="NAME">INI</span><span class="PUNC">[</span><span class="NAME">block</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="NAME">INI</span><span class="PUNC">[</span><span class="NAME">block</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>295</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">t.length</span><span class="PUNC">==</span><span class="NUMB">2</span><span class="PUNC">)</span><span class="NAME">INI</span><span class="PUNC">[</span><span class="NAME">block</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>296</span> </span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">1</span><span class="PUNC">,</span><span class="NAME">INI</span><span class="PUNC">[</span><span class="NAME">block</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">=</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">t.length</span><span class="PUNC">;</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="NAME">INI</span><span class="PUNC">[</span><span class="NAME">block</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">push</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="COMM">//,alert(block+','+t[0]+','+t[i])</span><span class="WHIT">
<span class='line'>297</span> </span><span class="WHIT"> </span><span class="COMM">//if(t[0])alert('INI['+block+']['+t[0]+']='+INI[block][t[0]]);else alert('block='+block);</span><span class="WHIT">
<span class='line'>298</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>299</span>
<span class='line'>300</span> </span><span class="WHIT"> </span><span class="NAME">datas.Close</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>301</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">INI</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>302</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>303</span>
<span class='line'>304</span>
<span class='line'>305</span>
<span class='line'>306</span>
<span class='line'>307</span> </span><span class="COMM">/*
<span class='line'>308</span> Scriptlet.Typelib 對象的設計用途是幫助您創建“Windows 腳本組件”實質上這是一種使您編寫的腳本可以像COM對象那樣工作的方法
<span class='line'>309</span> http://www.microsoft.com/technet/scriptcenter/resources/qanda/feb05/hey0221.mspx
<span class='line'>310</span> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rpc/rpc/guid.asp
<span class='line'>311</span> */</span><span class="WHIT">
<span class='line'>312</span> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">tempGUID</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>313</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">TypeLib</span><span class="PUNC">=</span><span class="NAME">WScript.CreateObject</span><span class="PUNC">(</span><span class="STRN">"Scriptlet.TypeLib"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="NAME">tGUID</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>314</span>
<span class='line'>315</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="PUNC">{</span><span class="NAME">tGUID</span><span class="PUNC">=</span><span class="NAME">TypeLib.Guid</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>316</span> </span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>317</span> </span><span class="WHIT"> </span><span class="KEYW">finally</span><span class="PUNC">{</span><span class="NAME">TypeLib</span><span class="PUNC">=</span><span class="KEYW">null</span><span class="PUNC">;</span><span class="PUNC">}</span><span class="WHIT"> </span><span class="COMM">// 即使 try 或 catch 區塊中發生傳回陳述式,或從 catch 區塊中擲出錯誤,仍會執行 finallyStatements 內的程式碼。finallyStatments 保證會永遠執行。</span><span class="WHIT">
<span class='line'>318</span>
<span class='line'>319</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">tGUID</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>320</span> </span><span class="PUNC">}</span><span class="WHIT">
<span class='line'>321</span>
<span class='line'>322</span>
<span class='line'>323</span>
<span class='line'>324</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
<span class='line'>325</span> </span><span class="WHIT"> </span><span class="NAME">CeL.OS.Windows.job</span><span class="WHIT">
<span class='line'>326</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>327</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>328</span>
<span class='line'>329</span> </span><span class="COMM">//===================================================</span><span class="WHIT">
<span class='line'>330</span>
<span class='line'>331</span> </span><span class="NAME">CeL.setup_module</span><span class="PUNC">(</span><span class="NAME">module_name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">code_for_including</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>332</span>
<span class='line'>333</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>334</span> </span></pre></body></html>