<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>管理员 - 命令提示符</title>
  
  <subtitle>Blog</subtitle>
  <link href="https://blog.admincmd.xyz/atom.xml" rel="self"/>
  
  <link href="https://blog.admincmd.xyz/"/>
  <updated>2026-01-12T14:28:23.421Z</updated>
  <id>https://blog.admincmd.xyz/</id>
  
  <author>
    <name>管理员 - 命令提示符</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>为你的博客添加一个时光飞逝的页面</title>
    <link href="https://blog.admincmd.xyz/post/5a6c9d6e5cc5/index.html"/>
    <id>https://blog.admincmd.xyz/post/5a6c9d6e5cc5/index.html</id>
    <published>2026-01-10T14:51:05.000Z</published>
    <updated>2026-01-12T14:28:23.421Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content='在Butterfly主题的基础上添加一个时光飞逝的页面，显示现在的年度、月度、日度、小时的过度情况。（欢迎进站访问|´・ω・) ノ）'><h2 id="前序"><a href="#前序" class="headerlink" title="前序"></a>前序</h2><p>忘了在哪看到的这个东西，总之看到了一次就忘不掉了<br>然后就拿我那差的要命的技术写了个这</p><p><del>屎山</del>这个东西还没到这个程度</p><div class="note info modern"><p>建议你先将文章过一遍，这样可以更清楚的知道自己下一步要干什么。</p><p>这东东貌似有小BUG</p></div><div class="note info modern"><p>%ThemeSource%<br>位于<code>~\themes\Butterfly\source\</code><br>%Source%<br>位于<code>~\source\</code><br>%ThemeLayout%<br>位于<code>~\themes\Butterfly\layout\</code></p></div><h2 id="预览"><a href="#预览" class="headerlink" title="预览"></a>预览</h2><p>页面正常的话，标题后面不就是的吗？</p><div class="time-flies"></div><p>单独页面</p><p><a href="https://blog.admincmd.xyz/url.html?url=https://blog.admincmd.xyz/favi/">https://blog.admincmd.xyz/favi/</a></p><!-- Github 仓库[https://github.com/admincmd-a/Time-flies](https://blog.admincmd.xyz/url.html?url=https://github.com/admincmd-a/Time-flies)Gitee 页面[https://gitee.com/administrator-command-prompt/Time-flies](https://blog.admincmd.xyz/url.html?url=https://gitee.com/administrator-command-prompt/Time-flies) --><h3 id="特性"><a href="#特性" class="headerlink" title="特性"></a>特性</h3><ul><li>支持夜间模式，需要 HTML 标签</li><li>支持自定义每行精度</li></ul><h2 id="引入"><a href="#引入" class="headerlink" title="引入"></a>引入</h2><style>  div#opst-info {    z-index: 1;background-color: #12121260;  }  header div.time-files {    height: 75%;width: 75%;left: 10%;position: absolute;z-index: 0;top: 15%;color: #FFFFFF;  }</style><script>    {  const obj = document.getElementById("page-header");       obj.style.backgroundImage = "" ;       obj.style.backgroundColor = "white";       obj.innerHTML = obj.innerHTML + `<div class="time-flies" id="post-info-div"><div class="progress-container">                    <div class="progress-label">今年已经过了 <span class="year-progress"></span></div>                    <div class="progress-bar">                        <div class="year-progress-bar"><span class="year-progress-bar-fill"></span></div>                    </div>                </div>                <div class="progress-container">                    <div class="progress-label">这个月过去了 <span class="month-progress"></span> </div>                    <div class="progress-bar">                        <div class="month-progress-bar"></div>                    </div>                </div>                <div class="progress-container">                    <div class="progress-label"> 今天过去了 <span class="day-progress"></span> </div>                    <div class="progress-bar">                        <div class="day-progress-bar"></div>                    </div>                </div>                <div class="progress-container">                    <div class="progress-label"> 这一个小时过了 <span class="hour-progress"></span> </div>                    <div class="progress-bar">                        <div class="hour-progress-bar"></div>                    </div>                </div>                <div class="progress-container">                    <div class="progress-label">本分钟过了 <span class="minute-progress"></span></div>                    <div class="progress-bar">                        <div class="minute-progress-bar"></div>                    </div>                </div>                </div>`;            document.getElementById("post-info").style = "z-index:1;background-color:#12121260;"            document.getElementById("post-info-div").style = "height:75%;width:75%;left:12%;position:absolute;z-index:0;top:15%;color:white;}"            // var style = document.createElement('style');            // var theHead = document.head || document.getElementsByTagName('head')[0];            // style.appendChild(document.createTextNode('div#opst-info{z-index:1;background-color:#12121260}header div.time-files{height:75%;width:75%;     left:10%;      position:absolute;z-index:0;top:15%;color:#fff}'));            // theHead.appendChild(style);    }</script><h3 id="引入-JS"><a href="#引入-JS" class="headerlink" title="引入 JS"></a>引入 JS</h3><p>这里的代码有可以自己启动、循环的形式，适用于整个页面没有主循环控制器的版本<br>也有需要在每次循环&#x2F;触发的形式，适用于有主循环控制器的版本</p><p>请根据自己的页面作选择，如果不知道选那种，请选择前者。</p><div class="note info modern"><p>代码块单号的是已压缩的代码，多行的是原带注释代码。</p></div><h4 id="适用于自启动、自循环"><a href="#适用于自启动、自循环" class="headerlink" title="适用于自启动、自循环"></a>适用于自启动、自循环</h4><p>这个代码随便找个能在页面加载时运行的位置扔着就行，不过建议找个地方放好，以后别忘了(￣y▽,￣)╭ </p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">let</span> <span class="variable constant_">UPDATE_PROGRESS_BARS_INIT</span>=<span class="literal">false</span>;<span class="keyword">function</span> <span class="title function_">updateProgressBars</span>(<span class="params"></span>)&#123;<span class="keyword">try</span>&#123;<span class="keyword">let</span> now=<span class="keyword">new</span> <span class="title class_">Date</span>();<span class="keyword">if</span>(<span class="variable constant_">UPDATE_PROGRESS_BARS_INIT</span>===<span class="literal">false</span>)&#123;<span class="keyword">for</span>(<span class="keyword">let</span> i=<span class="number">0</span>;i&lt;<span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;time-flies&#x27;</span>).<span class="property">length</span>;i++)&#123;<span class="keyword">let</span> length=<span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;time-flies&#x27;</span>)[i];length.<span class="property">innerHTML</span>=<span class="string">`&lt;div class=&quot;progress-container&quot;&gt;&lt;div class=&quot;progress-label&quot;&gt;今年已经过了&lt;span class=&quot;year-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;progress-bar&quot;&gt;&lt;div class=&quot;year-progress-bar&quot;&gt;&lt;span class=&quot;year-progress-bar-fill&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;progress-container&quot;&gt;&lt;div class=&quot;progress-label&quot;&gt;这个月过去了&lt;span class=&quot;month-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;progress-bar&quot;&gt;&lt;div class=&quot;month-progress-bar&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;progress-container&quot;&gt;&lt;div class=&quot;progress-label&quot;&gt;今天过去了&lt;span class=&quot;day-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;progress-bar&quot;&gt;div class=&quot;day-progress-bar&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;progress-container&quot;&gt;&lt;div class=&quot;progress-label&quot;&gt;这一个小时过了&lt;span class=&quot;hour-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;progress-bar&quot;&gt;&lt;div class=&quot;hour-progress-bar&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;progress-container&quot;&gt;&lt;div class=&quot;progress-label&quot;&gt;本分钟过了&lt;span class=&quot;minute-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;progress-bar&quot;&gt;&lt;div class=&quot;minute-progress-bar&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;珍惜时间，时光飞逝。&lt;/p&gt;`</span>&#125;<span class="variable constant_">UPDATE_PROGRESS_BARS_INIT</span>=<span class="literal">false</span>&#125;<span class="keyword">const</span> yearStart=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),<span class="number">0</span>,<span class="number">1</span>).<span class="title function_">getTime</span>();<span class="keyword">const</span> yearEnd=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>()+<span class="number">1</span>,<span class="number">0</span>,<span class="number">1</span>).<span class="title function_">getTime</span>();<span class="keyword">const</span> yearProgress=((now.<span class="title function_">getTime</span>()-yearStart)/(yearEnd-yearStart))*<span class="number">100</span>;<span class="keyword">const</span> monthStart=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),now.<span class="title function_">getMonth</span>(),<span class="number">1</span>).<span class="title function_">getTime</span>();<span class="keyword">const</span> monthEnd=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),now.<span class="title function_">getMonth</span>()+<span class="number">1</span>,<span class="number">1</span>).<span class="title function_">getTime</span>();<span class="keyword">const</span> monthProgress=((now.<span class="title function_">getTime</span>()-monthStart)/(monthEnd-monthStart))*<span class="number">100</span>;<span class="keyword">const</span> dayStart=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),now.<span class="title function_">getMonth</span>(),now.<span class="title function_">getDate</span>()).<span class="title function_">getTime</span>();<span class="keyword">const</span> dayEnd=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),now.<span class="title function_">getMonth</span>(),now.<span class="title function_">getDate</span>()+<span class="number">1</span>).<span class="title function_">getTime</span>();<span class="keyword">const</span> dayProgress=((now.<span class="title function_">getTime</span>()-dayStart)/(dayEnd-dayStart))*<span class="number">100</span>;<span class="keyword">const</span> hourStart=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),now.<span class="title function_">getMonth</span>(),now.<span class="title function_">getDate</span>(),now.<span class="title function_">getHours</span>()).<span class="title function_">getTime</span>();<span class="keyword">const</span> hourEnd=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),now.<span class="title function_">getMonth</span>(),now.<span class="title function_">getDate</span>(),now.<span class="title function_">getHours</span>()+<span class="number">1</span>).<span class="title function_">getTime</span>();<span class="keyword">const</span> hourProgress=((now.<span class="title function_">getTime</span>()-hourStart)/(hourEnd-hourStart))*<span class="number">100</span>;<span class="keyword">const</span> minuteProgress=(now.<span class="title function_">getSeconds</span>()*<span class="number">1000</span>+now.<span class="title function_">getMilliseconds</span>())/<span class="number">1000</span>/<span class="number">60</span>*<span class="number">100</span>;<span class="title function_">updateDisplay</span>(<span class="string">&#x27;year&#x27;</span>,yearProgress,<span class="number">7</span>);<span class="title function_">updateDisplay</span>(<span class="string">&#x27;month&#x27;</span>,monthProgress,<span class="number">6</span>);<span class="title function_">updateDisplay</span>(<span class="string">&#x27;day&#x27;</span>,dayProgress,<span class="number">5</span>);<span class="title function_">updateDisplay</span>(<span class="string">&#x27;hour&#x27;</span>,hourProgress,<span class="number">3</span>);<span class="title function_">updateDisplay</span>(<span class="string">&#x27;minute&#x27;</span>,minuteProgress,<span class="number">2</span>)&#125;<span class="keyword">catch</span>(error)&#123;<span class="variable language_">console</span>.<span class="title function_">error</span>(<span class="string">&#x27;更新模块：时光飞逝 时发生错误:&#x27;</span>,error)&#125;<span class="keyword">function</span> <span class="title function_">updateDisplay</span>(<span class="params">period,progress,decimalPlaces</span>)&#123;<span class="keyword">let</span> lengthDiv=<span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;time-flies&#x27;</span>);<span class="keyword">let</span> lengthProgress=<span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">`<span class="subst">$&#123;period&#125;</span>-progress`</span>);<span class="keyword">let</span> lengthProgressBar=<span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">`<span class="subst">$&#123;period&#125;</span>-progress-bar`</span>);<span class="keyword">for</span>(<span class="keyword">let</span> i=<span class="number">0</span>;i&lt;lengthDiv.<span class="property">length</span>;i++)&#123;lengthProgress[i].<span class="property">textContent</span>=progress.<span class="title function_">toFixed</span>(decimalPlaces)+<span class="string">&#x27;%&#x27;</span>;lengthProgressBar[i].<span class="property">style</span>.<span class="property">width</span>=progress.<span class="title function_">toFixed</span>(decimalPlaces)+<span class="string">&#x27;%&#x27;</span>&#125;&#125;&#125;<span class="built_in">setInterval</span>(updateProgressBars,<span class="number">1000</span>);</span><br></pre></td></tr></table></figure><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">let</span> <span class="variable constant_">UPDATE_PROGRESS_BARS_INIT</span> = <span class="literal">false</span>;</span><br><span class="line"><span class="keyword">function</span> <span class="title function_">updateProgressBars</span>(<span class="params"></span>) &#123;</span><br><span class="line">    <span class="keyword">try</span> &#123;</span><br><span class="line">        <span class="keyword">let</span> now = <span class="keyword">new</span> <span class="title class_">Date</span>();</span><br><span class="line">        <span class="keyword">if</span> (<span class="variable constant_">UPDATE_PROGRESS_BARS_INIT</span> === <span class="literal">false</span>) &#123;<span class="comment">// 初始化</span></span><br><span class="line">            <span class="keyword">for</span> (<span class="keyword">let</span> i = <span class="number">0</span>; i &lt; <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;time-flies&#x27;</span>).<span class="property">length</span>; i++) &#123;</span><br><span class="line">                <span class="keyword">let</span> length = <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;time-flies&#x27;</span>)[i];</span><br><span class="line">                length.<span class="property">innerHTML</span> = <span class="string">`</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-container&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-label&quot;&gt;今年已经过了 &lt;span class=&quot;year-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-bar&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;year-progress-bar&quot;&gt;&lt;span class=&quot;year-progress-bar-fill&quot;&gt;&lt;/span&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-container&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-label&quot;&gt;这个月过去了 &lt;span class=&quot;month-progress&quot;&gt;&lt;/span&gt; &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-bar&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;month-progress-bar&quot;&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-container&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-label&quot;&gt; 今天过去了 &lt;span class=&quot;day-progress&quot;&gt;&lt;/span&gt; &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-bar&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;day-progress-bar&quot;&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-container&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-label&quot;&gt; 这一个小时过了 &lt;span class=&quot;hour-progress&quot;&gt;&lt;/span&gt; &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-bar&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;hour-progress-bar&quot;&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-container&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-label&quot;&gt;本分钟过了 &lt;span class=&quot;minute-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-bar&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;minute-progress-bar&quot;&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;p&gt;珍惜时间，时光飞逝。&lt;/p&gt;`</span>;</span><br><span class="line">            &#125;</span><br><span class="line">            <span class="variable constant_">UPDATE_PROGRESS_BARS_INIT</span> = <span class="literal">true</span>;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        <span class="keyword">const</span> yearStart = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), <span class="number">0</span>, <span class="number">1</span>).<span class="title function_">getTime</span>(); <span class="comment">// 计算这个时间单位的起始位置</span></span><br><span class="line">        <span class="keyword">const</span> yearEnd = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>() + <span class="number">1</span>, <span class="number">0</span>, <span class="number">1</span>).<span class="title function_">getTime</span>(); <span class="comment">// 计算这个时间单位的终止位置</span></span><br><span class="line">        <span class="keyword">const</span> yearProgress = ((now.<span class="title function_">getTime</span>() - yearStart) / (yearEnd - yearStart)) * <span class="number">100</span>; <span class="comment">// 然后将当前时间与起始位置的差值除以终止位置与起始位置的差值，得到百分比</span></span><br><span class="line"></span><br><span class="line">        <span class="keyword">const</span> monthStart = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), now.<span class="title function_">getMonth</span>(), <span class="number">1</span>).<span class="title function_">getTime</span>();</span><br><span class="line">        <span class="keyword">const</span> monthEnd = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), now.<span class="title function_">getMonth</span>() + <span class="number">1</span>, <span class="number">1</span>).<span class="title function_">getTime</span>();</span><br><span class="line">        <span class="keyword">const</span> monthProgress = ((now.<span class="title function_">getTime</span>() - monthStart) / (monthEnd - monthStart)) * <span class="number">100</span>;</span><br><span class="line"></span><br><span class="line">        <span class="keyword">const</span> dayStart = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), now.<span class="title function_">getMonth</span>(), now.<span class="title function_">getDate</span>()).<span class="title function_">getTime</span>();</span><br><span class="line">        <span class="keyword">const</span> dayEnd = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), now.<span class="title function_">getMonth</span>(), now.<span class="title function_">getDate</span>() + <span class="number">1</span>).<span class="title function_">getTime</span>();</span><br><span class="line">        <span class="keyword">const</span> dayProgress = ((now.<span class="title function_">getTime</span>() - dayStart) / (dayEnd - dayStart)) * <span class="number">100</span>;</span><br><span class="line"></span><br><span class="line">        <span class="keyword">const</span> hourStart = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), now.<span class="title function_">getMonth</span>(), now.<span class="title function_">getDate</span>(), now.<span class="title function_">getHours</span>()).<span class="title function_">getTime</span>();</span><br><span class="line">        <span class="keyword">const</span> hourEnd = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), now.<span class="title function_">getMonth</span>(), now.<span class="title function_">getDate</span>(), now.<span class="title function_">getHours</span>() + <span class="number">1</span>).<span class="title function_">getTime</span>();</span><br><span class="line">        <span class="keyword">const</span> hourProgress = ((now.<span class="title function_">getTime</span>() - hourStart) / (hourEnd - hourStart)) * <span class="number">100</span>; <span class="comment">// 上面均通过计算当前时间与起始位置的差值除以起始位置与终止位置的差值得到百分比</span></span><br><span class="line"></span><br><span class="line">        <span class="keyword">const</span> minuteProgress = (</span><br><span class="line">            now.<span class="title function_">getSeconds</span>() * <span class="number">1000</span> +</span><br><span class="line">            now.<span class="title function_">getMilliseconds</span>()</span><br><span class="line">        ) / <span class="number">1000</span> / <span class="number">60</span> * <span class="number">100</span>; <span class="comment">// 计算一个分钟已过秒数，精确到毫秒，除以60，乘以100，得到百分比</span></span><br><span class="line"></span><br><span class="line">        <span class="comment">// 更新进度条和文本显示</span></span><br><span class="line">        <span class="title function_">updateDisplay</span>(<span class="string">&#x27;year&#x27;</span>, yearProgress, <span class="number">7</span>);</span><br><span class="line">        <span class="title function_">updateDisplay</span>(<span class="string">&#x27;month&#x27;</span>, monthProgress, <span class="number">6</span>);</span><br><span class="line">        <span class="title function_">updateDisplay</span>(<span class="string">&#x27;day&#x27;</span>, dayProgress, <span class="number">5</span>);</span><br><span class="line">        <span class="title function_">updateDisplay</span>(<span class="string">&#x27;hour&#x27;</span>, hourProgress, <span class="number">3</span>);</span><br><span class="line">        <span class="title function_">updateDisplay</span>(<span class="string">&#x27;minute&#x27;</span>, minuteProgress, <span class="number">2</span>);</span><br><span class="line"></span><br><span class="line">    &#125; <span class="keyword">catch</span> (error) &#123;</span><br><span class="line">        <span class="variable language_">console</span>.<span class="title function_">error</span>(<span class="string">&#x27;更新模块：时光飞逝 时发生错误:&#x27;</span>, error);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="comment">// 更新显示函数</span></span><br><span class="line">    <span class="keyword">function</span> <span class="title function_">updateDisplay</span>(<span class="params">period, progress, decimalPlaces</span>) &#123;</span><br><span class="line">        <span class="comment">// 进度条文本，值，精度(小数点后 x 位)</span></span><br><span class="line">        <span class="keyword">let</span> lengthDiv = <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;time-flies&#x27;</span>);</span><br><span class="line">        <span class="keyword">let</span> lengthProgress = <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">`<span class="subst">$&#123;period&#125;</span>-progress`</span>);</span><br><span class="line">        <span class="keyword">let</span> lengthProgressBar = <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">`<span class="subst">$&#123;period&#125;</span>-progress-bar`</span>);</span><br><span class="line">        <span class="keyword">for</span> (<span class="keyword">let</span> i = <span class="number">0</span>; i &lt; lengthDiv.<span class="property">length</span>; i++) &#123;</span><br><span class="line">            lengthProgress[i].<span class="property">textContent</span> = progress.<span class="title function_">toFixed</span>(decimalPlaces) + <span class="string">&#x27;%&#x27;</span>;</span><br><span class="line">            lengthProgressBar[i].<span class="property">style</span>.<span class="property">width</span> = progress.<span class="title function_">toFixed</span>(decimalPlaces) + <span class="string">&#x27;%&#x27;</span>;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"><span class="built_in">setInterval</span>(updateProgressBars, <span class="number">1000</span>);<span class="comment">// 每秒更新一次</span></span><br><span class="line"></span><br></pre></td></tr></table></figure><h4 id="主循环的附属"><a href="#主循环的附属" class="headerlink" title="主循环的附属"></a>主循环的附属</h4><p>此方式需要你手动将主函数<code>updateProgressBars</code>引入主循环的更新运行块中</p><details class="toggle" ><summary class="toggle-button" style="">有关主循环的</summary><div class="toggle-content"><p>本站的主 JS 是 <code>i.js</code>，在浏览器控制台中可以找到<code>主循环启动</code>的输出，单击索引便可以看到本站的主循环模块。</p></div></details><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">let</span> <span class="variable constant_">UPDATE_PROGRESS_BARS_INIT</span>=<span class="literal">false</span>;<span class="keyword">function</span> <span class="title function_">updateProgressBars</span>(<span class="params"></span>)&#123;<span class="keyword">try</span>&#123;<span class="keyword">let</span> now=<span class="keyword">new</span> <span class="title class_">Date</span>();<span class="keyword">if</span>(<span class="variable constant_">UPDATE_PROGRESS_BARS_INIT</span>===<span class="literal">false</span>)&#123;<span class="keyword">for</span>(<span class="keyword">let</span> i=<span class="number">0</span>;i&lt;<span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;time-flies&#x27;</span>).<span class="property">length</span>;i++)&#123;<span class="keyword">let</span> length=<span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;time-flies&#x27;</span>)[i];length.<span class="property">innerHTML</span>=<span class="string">`&lt;div class=&quot;progress-container&quot;&gt;&lt;div class=&quot;progress-label&quot;&gt;今年已经过了&lt;span class=&quot;year-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;progress-bar&quot;&gt;&lt;div class=&quot;year-progress-bar&quot;&gt;&lt;span class=&quot;year-progress-bar-fill&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;progress-container&quot;&gt;&lt;div class=&quot;progress-label&quot;&gt;这个月过去了&lt;span class=&quot;month-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;progress-bar&quot;&gt;&lt;div class=&quot;month-progress-bar&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;progress-container&quot;&gt;&lt;div class=&quot;progress-label&quot;&gt;今天过去了&lt;span class=&quot;day-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;progress-bar&quot;&gt;&lt;div class=&quot;day-progress-bar&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;progress-container&quot;&gt;&lt;div class=&quot;progress-label&quot;&gt;这一个小时过了&lt;span class=&quot;hour-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;progress-bar&quot;&gt;&lt;div class=&quot;hour-progress-bar&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;progress-container&quot;&gt;&lt;div class=&quot;progress-label&quot;&gt;本分钟过了&lt;span class=&quot;minute-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;progress-bar&quot;&gt;&lt;div class=&quot;minute-progress-bar&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;珍惜时间，时光飞逝。&lt;/p&gt;`</span>&#125;<span class="variable constant_">UPDATE_PROGRESS_BARS_INIT</span>=<span class="literal">false</span>&#125;<span class="keyword">const</span> yearStart=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),<span class="number">0</span>,<span class="number">1</span>).<span class="title function_">getTime</span>();<span class="keyword">const</span> yearEnd=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>()+<span class="number">1</span>,<span class="number">0</span>,<span class="number">1</span>).<span class="title function_">getTime</span>();<span class="keyword">const</span> yearProgress=((now.<span class="title function_">getTime</span>()-yearStart)/(yearEnd-yearStart))*<span class="number">100</span>;<span class="keyword">const</span> monthStart=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),now.<span class="title function_">getMonth</span>(),<span class="number">1</span>).<span class="title function_">getTime</span>();<span class="keyword">const</span> monthEnd=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),now.<span class="title function_">getMonth</span>()+<span class="number">1</span>,<span class="number">1</span>).<span class="title function_">getTime</span>();<span class="keyword">const</span> monthProgress=((now.<span class="title function_">getTime</span>()-monthStart)/(monthEnd-monthStart))*<span class="number">100</span>;<span class="keyword">const</span> dayStart=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),now.<span class="title function_">getMonth</span>(),now.<span class="title function_">getDate</span>()).<span class="title function_">getTime</span>();<span class="keyword">const</span> dayEnd=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),now.<span class="title function_">getMonth</span>(),now.<span class="title function_">getDate</span>()+<span class="number">1</span>).<span class="title function_">getTime</span>();<span class="keyword">const</span> dayProgress=((now.<span class="title function_">getTime</span>()-dayStart)/(dayEnd-dayStart))*<span class="number">100</span>;<span class="keyword">const</span> hourStart=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),now.<span class="title function_">getMonth</span>(),now.<span class="title function_">getDate</span>(),now.<span class="title function_">getHours</span>()).<span class="title function_">getTime</span>();<span class="keyword">const</span> hourEnd=<span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(),now.<span class="title function_">getMonth</span>(),now.<span class="title function_">getDate</span>(),now.<span class="title function_">getHours</span>()+<span class="number">1</span>).<span class="title function_">getTime</span>();<span class="keyword">const</span> hourProgress=((now.<span class="title function_">getTime</span>()-hourStart)/(hourEnd-hourStart))*<span class="number">100</span>;<span class="keyword">const</span> minuteProgress=(now.<span class="title function_">getSeconds</span>()*<span class="number">1000</span>+now.<span class="title function_">getMilliseconds</span>())/<span class="number">1000</span>/<span class="number">60</span>*<span class="number">100</span>;<span class="title function_">a</span>(<span class="string">&#x27;year&#x27;</span>,yearProgress,<span class="number">7</span>);<span class="title function_">a</span>(<span class="string">&#x27;month&#x27;</span>,monthProgress,<span class="number">6</span>);<span class="title function_">a</span>(<span class="string">&#x27;day&#x27;</span>,dayProgress,<span class="number">5</span>);<span class="title function_">a</span>(<span class="string">&#x27;hour&#x27;</span>,hourProgress,<span class="number">3</span>);<span class="title function_">a</span>(<span class="string">&#x27;minute&#x27;</span>,minuteProgress,<span class="number">2</span>)&#125;<span class="keyword">catch</span>(error)&#123;<span class="variable language_">console</span>.<span class="title function_">error</span>(<span class="string">&#x27;更新模块：时光飞逝 时发生错误:&#x27;</span>,error)&#125;<span class="keyword">function</span> <span class="title function_">a</span>(<span class="params">c,b,d</span>)&#123;<span class="keyword">let</span> lengthDiv=<span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;time-flies&#x27;</span>);<span class="keyword">let</span> lengthProgress=<span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">`<span class="subst">$&#123;c&#125;</span>-b`</span>);<span class="keyword">let</span> lengthProgressBar=<span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">`<span class="subst">$&#123;c&#125;</span>-b-bar`</span>);<span class="keyword">for</span>(<span class="keyword">let</span> i=<span class="number">0</span>;i&lt;lengthDiv.<span class="property">length</span>;i++)&#123;lengthProgress[i].<span class="property">textContent</span>=b.<span class="title function_">toFixed</span>(d)+<span class="string">&#x27;%&#x27;</span>;lengthProgressBar[i].<span class="property">style</span>.<span class="property">width</span>=b.<span class="title function_">toFixed</span>(d)+<span class="string">&#x27;%&#x27;</span>&#125;&#125;&#125;</span><br></pre></td></tr></table></figure><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">let</span> <span class="variable constant_">UPDATE_PROGRESS_BARS_INIT</span> = <span class="literal">false</span>;</span><br><span class="line"><span class="keyword">function</span> <span class="title function_">updateProgressBars</span>(<span class="params"></span>) &#123;</span><br><span class="line">    <span class="keyword">try</span> &#123;</span><br><span class="line">        <span class="keyword">let</span> now = <span class="keyword">new</span> <span class="title class_">Date</span>();</span><br><span class="line">        <span class="keyword">if</span> (<span class="variable constant_">UPDATE_PROGRESS_BARS_INIT</span> === <span class="literal">false</span>) &#123;<span class="comment">// 初始化</span></span><br><span class="line">            <span class="keyword">for</span> (<span class="keyword">let</span> i = <span class="number">0</span>; i &lt; <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;time-flies&#x27;</span>).<span class="property">length</span>; i++) &#123;</span><br><span class="line">                <span class="keyword">let</span> length = <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;time-flies&#x27;</span>)[i];</span><br><span class="line">                length.<span class="property">innerHTML</span> = <span class="string">`</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-container&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-label&quot;&gt;今年已经过了 &lt;span class=&quot;year-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-bar&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;year-progress-bar&quot;&gt;&lt;span class=&quot;year-progress-bar-fill&quot;&gt;&lt;/span&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-container&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-label&quot;&gt;这个月过去了 &lt;span class=&quot;month-progress&quot;&gt;&lt;/span&gt; &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-bar&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;month-progress-bar&quot;&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-container&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-label&quot;&gt; 今天过去了 &lt;span class=&quot;day-progress&quot;&gt;&lt;/span&gt; &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-bar&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;day-progress-bar&quot;&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-container&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-label&quot;&gt; 这一个小时过了 &lt;span class=&quot;hour-progress&quot;&gt;&lt;/span&gt; &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-bar&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;hour-progress-bar&quot;&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-container&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-label&quot;&gt;本分钟过了 &lt;span class=&quot;minute-progress&quot;&gt;&lt;/span&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;progress-bar&quot;&gt;</span></span><br><span class="line"><span class="string">                &lt;div class=&quot;minute-progress-bar&quot;&gt;&lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;/div&gt;</span></span><br><span class="line"><span class="string">                &lt;p&gt;珍惜时间，时光飞逝。&lt;/p&gt;</span></span><br><span class="line"><span class="string">                `</span>;</span><br><span class="line">            &#125;</span><br><span class="line">            <span class="variable constant_">UPDATE_PROGRESS_BARS_INIT</span> = <span class="literal">false</span>;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        <span class="keyword">const</span> yearStart = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), <span class="number">0</span>, <span class="number">1</span>).<span class="title function_">getTime</span>(); <span class="comment">// 计算这个时间单位的起始位置</span></span><br><span class="line">        <span class="keyword">const</span> yearEnd = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>() + <span class="number">1</span>, <span class="number">0</span>, <span class="number">1</span>).<span class="title function_">getTime</span>(); <span class="comment">// 计算这个时间单位的终止位置</span></span><br><span class="line">        <span class="keyword">const</span> yearProgress = ((now.<span class="title function_">getTime</span>() - yearStart) / (yearEnd - yearStart)) * <span class="number">100</span>; <span class="comment">// 然后将当前时间与起始位置的差值除以终止位置与起始位置的差值，得到百分比</span></span><br><span class="line"></span><br><span class="line">        <span class="keyword">const</span> monthStart = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), now.<span class="title function_">getMonth</span>(), <span class="number">1</span>).<span class="title function_">getTime</span>();</span><br><span class="line">        <span class="keyword">const</span> monthEnd = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), now.<span class="title function_">getMonth</span>() + <span class="number">1</span>, <span class="number">1</span>).<span class="title function_">getTime</span>();</span><br><span class="line">        <span class="keyword">const</span> monthProgress = ((now.<span class="title function_">getTime</span>() - monthStart) / (monthEnd - monthStart)) * <span class="number">100</span>;</span><br><span class="line"></span><br><span class="line">        <span class="keyword">const</span> dayStart = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), now.<span class="title function_">getMonth</span>(), now.<span class="title function_">getDate</span>()).<span class="title function_">getTime</span>();</span><br><span class="line">        <span class="keyword">const</span> dayEnd = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), now.<span class="title function_">getMonth</span>(), now.<span class="title function_">getDate</span>() + <span class="number">1</span>).<span class="title function_">getTime</span>();</span><br><span class="line">        <span class="keyword">const</span> dayProgress = ((now.<span class="title function_">getTime</span>() - dayStart) / (dayEnd - dayStart)) * <span class="number">100</span>;</span><br><span class="line"></span><br><span class="line">        <span class="keyword">const</span> hourStart = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), now.<span class="title function_">getMonth</span>(), now.<span class="title function_">getDate</span>(), now.<span class="title function_">getHours</span>()).<span class="title function_">getTime</span>();</span><br><span class="line">        <span class="keyword">const</span> hourEnd = <span class="keyword">new</span> <span class="title class_">Date</span>(now.<span class="title function_">getFullYear</span>(), now.<span class="title function_">getMonth</span>(), now.<span class="title function_">getDate</span>(), now.<span class="title function_">getHours</span>() + <span class="number">1</span>).<span class="title function_">getTime</span>();</span><br><span class="line">        <span class="keyword">const</span> hourProgress = ((now.<span class="title function_">getTime</span>() - hourStart) / (hourEnd - hourStart)) * <span class="number">100</span>; <span class="comment">// 上面均通过计算当前时间与起始位置的差值除以起始位置与终止位置的差值得到百分比</span></span><br><span class="line"></span><br><span class="line">        <span class="keyword">const</span> minuteProgress = (</span><br><span class="line">            now.<span class="title function_">getSeconds</span>() * <span class="number">1000</span> +</span><br><span class="line">            now.<span class="title function_">getMilliseconds</span>()</span><br><span class="line">        ) / <span class="number">1000</span> / <span class="number">60</span> * <span class="number">100</span>; <span class="comment">// 计算一个分钟已过秒数，精确到毫秒，除以60，乘100，得到百分比</span></span><br><span class="line"></span><br><span class="line">        <span class="comment">// 更新进度条和文本显示</span></span><br><span class="line">        <span class="title function_">updateDisplay</span>(<span class="string">&#x27;year&#x27;</span>, yearProgress, <span class="number">7</span>);</span><br><span class="line">        <span class="title function_">updateDisplay</span>(<span class="string">&#x27;month&#x27;</span>, monthProgress, <span class="number">6</span>);</span><br><span class="line">        <span class="title function_">updateDisplay</span>(<span class="string">&#x27;day&#x27;</span>, dayProgress, <span class="number">5</span>);</span><br><span class="line">        <span class="title function_">updateDisplay</span>(<span class="string">&#x27;hour&#x27;</span>, hourProgress, <span class="number">3</span>);</span><br><span class="line">        <span class="title function_">updateDisplay</span>(<span class="string">&#x27;minute&#x27;</span>, minuteProgress, <span class="number">2</span>);</span><br><span class="line"></span><br><span class="line">    &#125; <span class="keyword">catch</span> (error) &#123;</span><br><span class="line">        <span class="variable language_">console</span>.<span class="title function_">error</span>(<span class="string">&#x27;更新模块：时光飞逝 时发生错误:&#x27;</span>, error);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="comment">// 更新显示函数</span></span><br><span class="line">    <span class="keyword">function</span> <span class="title function_">updateDisplay</span>(<span class="params">period, progress, decimalPlaces</span>) &#123;</span><br><span class="line">        <span class="comment">// 进度条文本，值，精度(小时点后 x 位)</span></span><br><span class="line">        <span class="keyword">let</span> lengthDiv = <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">&#x27;time-flies&#x27;</span>);</span><br><span class="line">        <span class="keyword">let</span> lengthProgress = <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">`<span class="subst">$&#123;period&#125;</span>-progress`</span>);</span><br><span class="line">        <span class="keyword">let</span> lengthProgressBar = <span class="variable language_">document</span>.<span class="title function_">getElementsByClassName</span>(<span class="string">`<span class="subst">$&#123;period&#125;</span>-progress-bar`</span>);</span><br><span class="line">        <span class="keyword">for</span> (<span class="keyword">let</span> i = <span class="number">0</span>; i &lt; lengthDiv.<span class="property">length</span>; i++) &#123;</span><br><span class="line">            lengthProgress[i].<span class="property">textContent</span> = progress.<span class="title function_">toFixed</span>(decimalPlaces) + <span class="string">&#x27;%&#x27;</span>;</span><br><span class="line">            lengthProgressBar[i].<span class="property">style</span>.<span class="property">width</span> = progress.<span class="title function_">toFixed</span>(decimalPlaces) + <span class="string">&#x27;%&#x27;</span>;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="引入-CSS"><a href="#引入-CSS" class="headerlink" title="引入 CSS"></a>引入 CSS</h3><p>放在合适的位置即可</p><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-class">.time-flies</span> <span class="selector-class">.progress-container</span>&#123;<span class="attribute">margin-bottom</span>:<span class="number">10px</span>;&#125;<span class="selector-class">.time-flies</span> <span class="selector-class">.progress-label</span>&#123;<span class="attribute">font-size</span>:<span class="number">14px</span>;   <span class="attribute">margin-bottom</span>:<span class="number">5px</span>;&#125;<span class="selector-class">.time-flies</span> <span class="selector-class">.year-progress-bar</span>,<span class="selector-class">.time-flies</span> <span class="selector-class">.month-progress-bar</span>,<span class="selector-class">.time-flies</span> <span class="selector-class">.day-progress-bar</span>,<span class="selector-class">.time-flies</span> <span class="selector-class">.hour-progress-bar</span>,<span class="selector-class">.time-flies</span> <span class="selector-class">.minute-progress-bar</span>&#123;   <span class="attribute">width</span>:<span class="number">100%</span>;   <span class="attribute">color</span>:<span class="built_in">hsla</span>(<span class="number">0</span>,<span class="number">0%</span>,<span class="number">31%</span>,<span class="number">0.24</span>);   <span class="attribute">border-radius</span>:<span class="number">5px</span>;   <span class="attribute">overflow</span>:hidden;<span class="attribute">text-align</span>:center;<span class="attribute">line-height</span>:<span class="number">20px</span>;<span class="attribute">transition</span>:width <span class="number">0.5s</span>;<span class="attribute">height</span>:<span class="number">12px</span>;&#125;<span class="selector-class">.time-flies</span> <span class="selector-class">.year-progress-bar</span>,<span class="selector-class">.time-flies</span> <span class="selector-class">.month-progress-bar</span>,<span class="selector-class">.time-flies</span> <span class="selector-class">.day-progress-bar</span>,<span class="selector-class">.time-flies</span> <span class="selector-class">.hour-progress-bar</span>,<span class="selector-class">.time-flies</span> <span class="selector-class">.minute-progress-bar</span>&#123;   <span class="attribute">content</span>:<span class="string">&quot;&quot;</span>;   <span class="attribute">position</span>:absolute;<span class="attribute">background-image</span>:<span class="built_in">linear-gradient</span>(-<span class="number">45deg</span>,<span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.2</span>) <span class="number">25%</span>,transparent <span class="number">25%</span>,transparent <span class="number">50%</span>,<span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.2</span>) <span class="number">50%</span>,<span class="built_in">rgba</span>(<span class="number">255</span>,<span class="number">255</span>,<span class="number">255</span>,<span class="number">0.2</span>) <span class="number">75%</span>,transparent <span class="number">75%</span>,transparent);<span class="attribute">z-index</span>:<span class="number">1</span>;<span class="attribute">background-size</span>:<span class="number">50px</span> <span class="number">50px</span>;<span class="attribute">animation</span>:move <span class="number">5s</span> linear infinite;<span class="attribute">border-top-right-radius</span>:<span class="number">8px</span>;<span class="attribute">border-bottom-right-radius</span>:<span class="number">8px</span>;<span class="attribute">border-top-left-radius</span>:<span class="number">20px</span>;<span class="attribute">border-bottom-left-radius</span>:<span class="number">20px</span>;   <span class="attribute">overflow</span>:hidden;&#125;<span class="selector-class">.time-flies</span> <span class="selector-class">.year-progress-bar</span>&#123;<span class="attribute">background-color</span>:<span class="number">#4caf50</span>;&#125;<span class="selector-class">.time-flies</span> <span class="selector-class">.month-progress-bar</span>&#123;<span class="attribute">background-color</span>:<span class="number">#4caf50</span>;&#125;<span class="selector-class">.time-flies</span> <span class="selector-class">.day-progress-bar</span>&#123;<span class="attribute">background-color</span>:<span class="number">#4caf50</span>;&#125;<span class="selector-class">.time-flies</span> <span class="selector-class">.hour-progress-bar</span>&#123;<span class="attribute">background-color</span>:<span class="number">#4caf50</span>;&#125;<span class="selector-class">.time-flies</span> <span class="selector-class">.minute-progress-bar</span>&#123;<span class="attribute">background-color</span>:<span class="number">#4caf50</span>;&#125;<span class="selector-tag">html</span><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.time-flies</span> <span class="selector-class">.year-progress-bar</span>&#123;<span class="attribute">background-color</span>:<span class="number">#2e8330</span>;&#125;<span class="selector-tag">html</span><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.time-flies</span> <span class="selector-class">.month-progress-bar</span>&#123;<span class="attribute">background-color</span>:<span class="number">#2e8330</span>;&#125;<span class="selector-tag">html</span><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.time-flies</span> <span class="selector-class">.day-progress-bar</span>&#123;<span class="attribute">background-color</span>:<span class="number">#2e8330</span>;&#125;<span class="selector-tag">html</span><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.time-flies</span> <span class="selector-class">.hour-progress-bar</span>&#123;<span class="attribute">background-color</span>:<span class="number">#2e8330</span>;&#125;<span class="selector-tag">html</span><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.time-flies</span> <span class="selector-class">.minute-progress-bar</span>&#123;<span class="attribute">background-color</span>:<span class="number">#2e8330</span>;<span class="selector-id">#4caf50</span>;&#125;<span class="selector-class">.time-flies</span> <span class="selector-class">.progress-bar</span>&#123;<span class="attribute">width</span>:<span class="number">100%</span>;<span class="attribute">background-color</span>:$color-theme-light-<span class="number">2</span>background;<span class="selector-id">#dddborder-radius</span>:<span class="number">5px</span>;<span class="attribute">overflow</span>:hidden;&#125;<span class="selector-tag">html</span><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.time-flies</span> <span class="selector-class">.progress-bar</span>&#123;<span class="attribute">background-color</span>:$color-theme-dark-<span class="number">2</span>background&#125;<span class="keyword">@keyframes</span> move&#123;<span class="number">0%</span>&#123;<span class="attribute">background-position</span>:<span class="number">0</span> <span class="number">0</span>;&#125;<span class="number">100%</span>&#123;<span class="attribute">background-position</span>:<span class="number">50px</span> <span class="number">50px</span>;&#125;&#125;<span class="keyword">@-webkit-keyframes</span> move&#123;<span class="number">0%</span>&#123;<span class="attribute">background-position</span>:<span class="number">0</span> <span class="number">0</span>;&#125;<span class="number">100%</span>&#123;<span class="attribute">background-position</span>:<span class="number">50px</span> <span class="number">50px</span>;&#125;&#125;</span><br></pre></td></tr></table></figure><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* 时光飞逝 Home -*/</span></span><br><span class="line"><span class="selector-class">.time-flies</span> <span class="selector-class">.progress-container</span> &#123;</span><br><span class="line">  <span class="attribute">margin-bottom</span>: <span class="number">10px</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-class">.time-flies</span> <span class="selector-class">.progress-label</span> &#123;</span><br><span class="line">    <span class="attribute">font-size</span>: <span class="number">14px</span>;</span><br><span class="line">    <span class="attribute">margin-bottom</span>: <span class="number">5px</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-class">.time-flies</span> <span class="selector-class">.year-progress-bar</span>,<span class="selector-class">.time-flies</span> <span class="selector-class">.month-progress-bar</span>,<span class="selector-class">.time-flies</span> <span class="selector-class">.day-progress-bar</span>,<span class="selector-class">.time-flies</span> <span class="selector-class">.hour-progress-bar</span>,<span class="selector-class">.time-flies</span> <span class="selector-class">.minute-progress-bar</span> &#123;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">color</span>: <span class="built_in">hsla</span>(<span class="number">0</span>, <span class="number">0%</span>, <span class="number">31%</span>, <span class="number">0.24</span>); <span class="comment">/* 进度条背景色 */</span></span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">5px</span>;<span class="comment">/*圆角*/</span></span><br><span class="line">  <span class="attribute">overflow</span>: hidden;</span><br><span class="line">  <span class="attribute">text-align</span>: center;</span><br><span class="line">  <span class="attribute">line-height</span>: <span class="number">20px</span>;</span><br><span class="line">  <span class="attribute">transition</span>: width <span class="number">0.5s</span>;<span class="comment">/*一次到目标位置的速度*/</span></span><br><span class="line">  <span class="attribute">height</span>: <span class="number">12px</span>;<span class="comment">/*进度条高度*/</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.time-flies</span> <span class="selector-class">.year-progress-bar</span>, <span class="selector-class">.time-flies</span> <span class="selector-class">.month-progress-bar</span>, <span class="selector-class">.time-flies</span> <span class="selector-class">.day-progress-bar</span>, <span class="selector-class">.time-flies</span> <span class="selector-class">.hour-progress-bar</span>, <span class="selector-class">.time-flies</span> <span class="selector-class">.minute-progress-bar</span> </span><br><span class="line">&#123;</span><br><span class="line">       <span class="attribute">content</span>: <span class="string">&quot;&quot;</span>;</span><br><span class="line">   <span class="attribute">position</span>: absolute;</span><br><span class="line">  <span class="attribute">background-image</span>: <span class="built_in">linear-gradient</span>(</span><br><span class="line">    -<span class="number">45deg</span>,</span><br><span class="line">    <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.2</span>) <span class="number">25%</span>,</span><br><span class="line">    transparent <span class="number">25%</span>,</span><br><span class="line">    transparent <span class="number">50%</span>,</span><br><span class="line">    <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.2</span>) <span class="number">50%</span>,</span><br><span class="line">    <span class="built_in">rgba</span>(<span class="number">255</span>, <span class="number">255</span>, <span class="number">255</span>, <span class="number">0.2</span>) <span class="number">75%</span>,</span><br><span class="line">    transparent <span class="number">75%</span>,</span><br><span class="line">    transparent</span><br><span class="line">  );</span><br><span class="line">  <span class="attribute">z-index</span>: <span class="number">1</span>;</span><br><span class="line">  <span class="attribute">background-size</span>: <span class="number">50px</span> <span class="number">50px</span>;</span><br><span class="line">  <span class="attribute">animation</span>: move <span class="number">5s</span> linear infinite;</span><br><span class="line">  <span class="attribute">border-top-right-radius</span>: <span class="number">8px</span>;</span><br><span class="line">  <span class="attribute">border-bottom-right-radius</span>: <span class="number">8px</span>;</span><br><span class="line">  <span class="attribute">border-top-left-radius</span>: <span class="number">20px</span>;</span><br><span class="line">  <span class="attribute">border-bottom-left-radius</span>: <span class="number">20px</span>;</span><br><span class="line">   <span class="attribute">overflow</span>: hidden;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.time-flies</span> <span class="selector-class">.year-progress-bar</span> &#123;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="number">#4caf50</span>;<span class="comment">/*进度条颜色*/</span></span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-class">.time-flies</span> <span class="selector-class">.month-progress-bar</span> &#123;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="number">#4caf50</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-class">.time-flies</span> <span class="selector-class">.day-progress-bar</span> &#123;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="number">#4caf50</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-class">.time-flies</span> <span class="selector-class">.hour-progress-bar</span> &#123;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="number">#4caf50</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-class">.time-flies</span> <span class="selector-class">.minute-progress-bar</span> &#123;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="number">#4caf50</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-tag">html</span><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.time-flies</span> <span class="selector-class">.year-progress-bar</span> &#123;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="number">#2e8330</span>;<span class="comment">/*进度条颜色*/</span></span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-tag">html</span><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.time-flies</span> <span class="selector-class">.month-progress-bar</span> &#123;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="number">#2e8330</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-tag">html</span><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.time-flies</span> <span class="selector-class">.day-progress-bar</span> &#123;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="number">#2e8330</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-tag">html</span><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.time-flies</span> <span class="selector-class">.hour-progress-bar</span> &#123;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="number">#2e8330</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-tag">html</span><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.time-flies</span> <span class="selector-class">.minute-progress-bar</span> &#123;</span><br><span class="line">  <span class="attribute">background-color</span>: <span class="number">#2e8330</span>; //<span class="selector-id">#4caf50</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="selector-class">.time-flies</span> <span class="selector-class">.progress-bar</span> &#123;</span><br><span class="line">  <span class="attribute">width</span>: <span class="number">100%</span>;</span><br><span class="line">  <span class="attribute">background-color</span>: $color-theme-light-<span class="number">2</span>background;<span class="comment">/*进度条背景色*/</span> //<span class="selector-id">#ddd</span></span><br><span class="line">  <span class="attribute">border-radius</span>: <span class="number">5px</span>;<span class="comment">/*圆角*/</span></span><br><span class="line">  <span class="attribute">overflow</span>: hidden;</span><br><span class="line">&#125;</span><br><span class="line"><span class="selector-tag">html</span><span class="selector-attr">[data-theme=<span class="string">&quot;dark&quot;</span>]</span> <span class="selector-class">.time-flies</span> <span class="selector-class">.progress-bar</span> &#123;</span><br><span class="line">    <span class="attribute">background-color</span>: $color-theme-dark-<span class="number">2</span>background</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">@keyframes</span> move &#123;</span><br><span class="line">  <span class="number">0%</span> &#123;</span><br><span class="line">    <span class="attribute">background-position</span>: <span class="number">0</span> <span class="number">0</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="number">100%</span> &#123;</span><br><span class="line">    <span class="attribute">background-position</span>: <span class="number">50px</span> <span class="number">50px</span>;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">@-webkit-keyframes</span> move &#123;</span><br><span class="line">  <span class="number">0%</span> &#123;</span><br><span class="line">    <span class="attribute">background-position</span>: <span class="number">0</span> <span class="number">0</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="number">100%</span> &#123;</span><br><span class="line">    <span class="attribute">background-position</span>: <span class="number">50px</span> <span class="number">50px</span>;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">/* 时光飞逝 End -*/</span></span><br></pre></td></tr></table></figure><h2 id="添加"><a href="#添加" class="headerlink" title="添加"></a>添加</h2><h3 id="单独页面-适用于Hexo-Butterfly"><a href="#单独页面-适用于Hexo-Butterfly" class="headerlink" title="单独页面(适用于Hexo + Butterfly)"></a>单独页面(适用于Hexo + Butterfly)</h3><p>创建<code>%ThemeLayout%\includes\page\time.pug</code><br>放入以下内容</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">.time-flies</span><br></pre></td></tr></table></figure><p>找到<code>%ThemeLayout%\page.pug</code><br>放入以下内容</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">extends includes/layout.pug</span><br><span class="line"></span><br><span class="line">[...]</span><br><span class="line">      when &#x27;about&#x27;</span><br><span class="line">        include includes/page/about.pug</span><br><span class="line">+      when &#x27;time&#x27;</span><br><span class="line">+        include includes/page/time.pug</span><br><span class="line">[...]</span><br><span class="line"></span><br><span class="line">    comments/index&#x27;, &#123;&#125;, &#123;cache: true&#125;)</span><br></pre></td></tr></table></figure><div class="note info modern"><p>插入 + 后面的内容即可，删除 + 号后无需添加空格</p></div><p>创建<code>%Source%\time\index.md</code><br>放入以下内容</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">---</span><br><span class="line">title: 时光飞逝</span><br><span class="line">date: 2021-03-30 15:57:51</span><br><span class="line">aside: false</span><br><span class="line">top<span class="emphasis">_img: false</span></span><br><span class="line"><span class="emphasis">comments: false</span></span><br><span class="line"><span class="emphasis">type: &quot;time&quot;</span></span><br><span class="line"><span class="emphasis">---</span></span><br></pre></td></tr></table></figure><p>hexo g + s 即可看到效果</p><hr><h3 id="单独页面或边栏之类的"><a href="#单独页面或边栏之类的" class="headerlink" title="单独页面或边栏之类的"></a>单独页面或边栏之类的</h3><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">div</span> <span class="attr">class</span>=<span class="string">&quot;time-flies&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br></pre></td></tr></table></figure><!-- ## 调整和适应其实大部分在没有压缩的 CSS 和 JS 的部分用注释写了出来部分没有提到的在此处提一下 --><h2 id="License"><a href="#License" class="headerlink" title="License"></a>License</h2><p>(仅包括文中的 JavaScript 和 CSS 代码块)</p><blockquote><p>The MIT License (MIT)</p><p>Copyright © 2026 AdminCmd(<a href="http://admincmd.xyz/">http://admincmd.xyz</a>)</p><p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and&#x2F;or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p><p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p><p>THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;在Butterfly主题的基础上添加一个时光飞逝的页面，显示现在的年度、月度、日度、小时的过度情况。（欢迎进站访问|´・ω・) ノ）&#39;&gt;


&lt;h2 id=&quot;前序&quot;&gt;&lt;a href=&quot;#前序&quot; class=&quot;he</summary>
      
    
    
    
    <category term="教程" scheme="https://blog.admincmd.xyz/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="博客" scheme="https://blog.admincmd.xyz/categories/%E6%95%99%E7%A8%8B/%E5%8D%9A%E5%AE%A2/"/>
    
    
    <category term="魔改" scheme="https://blog.admincmd.xyz/tags/%E9%AD%94%E6%94%B9/"/>
    
    <category term="hexo" scheme="https://blog.admincmd.xyz/tags/hexo/"/>
    
    <category term="Butterfly" scheme="https://blog.admincmd.xyz/tags/Butterfly/"/>
    
  </entry>
  
  <entry>
    <title>把窗口(视频壁纸)塞进桌面 (Win11 24H2以下)</title>
    <link href="https://blog.admincmd.xyz/post/269d13bae5b0/index.html"/>
    <id>https://blog.admincmd.xyz/post/269d13bae5b0/index.html</id>
    <published>2025-06-16T06:37:41.000Z</published>
    <updated>2025-10-05T03:41:04.816Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content=''><div class="note default simple"><p>阅读之前：请先了解有关术语，如句柄、窗口、消息等</p></div><div class="note danger modern"><p>有一定技术含量，如果把桌面弄坏了请重启文件资源管理器。</p></div><div class="note info modern"><p>建议改成：视频壁纸原理</p><p>鄙人不才，如有疏漏或错误请在评论指出。</p></div><div class="note success modern"><p>该功能只能在 Windows 8 —— Windows 11 23H2 间的版本中使用</p><p>原因：Windows 11 24H2 中该窗口消息流程被修改，窗口关系变化。</p></div><h2 id="开始之前"><a href="#开始之前" class="headerlink" title="开始之前"></a>开始之前</h2><p>这几天，闲得慌，在这里弄视频壁纸，就搓出这么个东东</p><h2 id="基本实现"><a href="#基本实现" class="headerlink" title="基本实现"></a>基本实现</h2><h3 id="插入窗口"><a href="#插入窗口" class="headerlink" title="插入窗口"></a>插入窗口</h3><p>总所周知，Windows 就是<em>窗户</em>，所以各个组成都是窗口<br>现在我们要弄视频壁纸，就将视频窗口设置为桌面的子窗口，然后设置前置、全屏<br>桌面图标其实是一个透明的控件，所以大概实现如下：</p><pre><code>|  |  |-------|  |  | &lt;= 背景壁纸|  | &lt;= 插入的窗口| &lt;= 控件</code></pre><p>说起来似乎很简单，但实际实现却有些难<br>在正常情况下，<br>使用 <code>Spy++</code> 查询桌面归窗口 <code>Program Manager</code> 管，大概是以下结构</p><pre><code>|+ Program Manager  + (无名称) SHELLDLL_DefView    + FolderView</code></pre><p>你无论给设谁的子窗口，它都在控件前面或者索性不知道去了那</p><p>但 Win10 有个功能，叫任务视图，这个东西你点击去，欸，后面有壁纸，同时 <code>Program Manager</code> 下面没有子窗口了</p><p>那就有人问了：子窗口呢</p><p>哎，它分裂了，就像细胞分裂一样<br>桌面变成了下面的结构</p><pre><code>|+ WorkerW  + (无名称) SHELLDLL_DefView    + FolderView+ WorkerW+ Program Manager</code></pre><p>那是什么神奇的力量驱使它分裂的呢</p><p>通过对 <code>Program Manager</code> 的 <mark class="hl-label blue">Messages</mark>  分析，发现有这么一条<mark class="hl-label blue">Messages</mark> </p><p>有一条叫 <code>0x052C</code> 的消息</p><pre><code>&lt;000012&gt; 0000000000010116 P message: 0x052C [用户定义: WM_USER+300] wParam: 0000000D Iparam: 00000001</code></pre><p>是不是它呢<del>这不废话吗，都到这来了，肯定是它呀</del>，注销一下<br>恢复最开始的状态</p><p>然后写个简单的 C++ 程序，作用就是发消息<br>快给 <code>Program Manager</code> 送去，<del>告诉他，味道鲜美无比</del>编译运行</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">HWND hProgman = <span class="built_in">FindWindow</span>(_T(<span class="string">&quot;Progman&quot;</span>), <span class="literal">NULL</span>);</span><br><span class="line"><span class="built_in">SendMessageTimeout</span>(hProgman, <span class="number">0x052C</span>, <span class="number">0</span>, <span class="number">0</span>, SMTO_NORMAL, <span class="number">1000</span>, <span class="literal">NULL</span>);</span><br></pre></td></tr></table></figure><div class="note info simple"><p>这段代码将 0x052c 消息传输到 Program Manager 窗口，不等待返回，生存时间为 1 秒</p><p>实际使用应处理返回值。</p></div><div class="note modern"><p>部分系统在收到消息后可能不会分裂，也不知道为什么，可能是权限的问题吧（哎可能他忘记以管理员启动了）</p></div><p>从 <code>Spy++</code> 一看，已经分裂了，没错，就是你 <code>0x052C</code>。<br><em>下文就称这个 <code>0x052C</code> 为 <mark class="hl-label blue">细胞分裂消息</mark> </em></p><p>好了，现在有 <code>WorkerW</code>(1) | <code>WorkerW</code>(2) | <code>Program Manager</code> 一共 3 个管桌面的窗口</p><pre><code>|+ WorkerW                       &lt;= 1  + (无名称) SHELLDLL_DefView    + FolderView+ WorkerW                       &lt;= 2+ Program Manager</code></pre><p>插在那好呢，非常简单 &#x3D;&gt; 枚举</p><p>一个一个的试，不就可以了</p><ol><li><p><code>WorkerW</code>(1)<br> 窗口是有了，但是在桌面图标的前面<br> 所以<br> <figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">const</span> <span class="title function_">WorkerW_1</span> = (<span class="params"><span class="variable language_">this</span></span>) =&gt; 垃圾桶;</span><br></pre></td></tr></table></figure></p></li><li><p><code>WorkerW</code>(2)<br> 效果已经出来了：<br> 视频被渲染在桌面图标的后面<br> 不干扰前面的正常工作</p>  <!-- ![一键三连娘的视频在桌面后面播放](/img/测试.png) --><blockquote><p>该方法具有一定的问题，主要因为该窗口具有缓存快照，这就导致每次有窗口需要重绘时不会重绘。<br>所以只有<strong>视频壁纸</strong>这种实时绘制的可以放进去<del>毕竟刚缓存就被重绘了</del></p><p>如果是某些动态壁纸（如根据鼠标位置移动窗口的）不能放进去，否则会有残影</p></blockquote> <details class="toggle" ><summary class="toggle-button" style="">关于一些别的事情</summary><div class="toggle-content"><p>在撰写本文此段的当天(2025-06-16) 我在教室的电脑上，<br>手欠把一个文件资源管理器的窗口放了进去，<br>然后，<br>每一节课的老师都试图关闭这个窗口，<br>然鹅关不上，被桌面图标控件挡住了<br><del>然后被班主任说了一顿</del></p></div></details></li><li><p><code>Program Manager</code><br> 可以实现类似效果，但是<br> 由于每收到一次 <mark class="hl-label blue">细胞分裂消息</mark>  就会尝试分裂，但是已经分裂了，它会把自己的子窗口全部转给第一个 <code>WorkerW</code> 窗口，好，它就在桌面图标前了。</p><p> <del>什么，你问为啥会有消息，你要是不小心把任务视图打开了咋办</del></p><p> 但是由于 <code>WorkerW</code>(2) 的特殊性，部分<strong>动态壁纸</strong>只能放在此处，因为该窗口没有缓存快照<br> 这时候就是这样的</p><pre><code> | + WorkerW                       &lt;= 1   + (无名称) SHELLDLL_DefView     + FolderView + WorkerW                       &lt;= 2 + Program Manager   + FFplay</code></pre><p> 这是就会发现，欸，<code>ffplay</code> 的窗口呢？<br> 哎，被 <code>WorkerW</code>(2) 挡住了，<br> 不过此事好办，调用 <code>ShowWindow</code> 函数把他隐藏就可以了。</p></li></ol><div class="note success modern"><p>窗口在里面移动的时候，如果窗口 top 的值修改了，窗口就不知道去哪了，修改 left 值，哎，他就又出来了。</p></div><p>好，现在窗口可以进去了，现在解决点实际的问题</p><hr><h2 id="显示"><a href="#显示" class="headerlink" title="显示"></a>显示</h2><h3 id="坐标位置"><a href="#坐标位置" class="headerlink" title="坐标位置"></a>坐标位置</h3><p>我们都知道，在多显示器情况下，窗口<mark class="hl-label purple">二维坐标系原点</mark> 基于主显示器的右上角开始计算<br>设每个显示器分辨率为 1366x768 ，1 显示器为主显示器</p><pre><code>   --&gt; X             +-------+ +-------+ +-------+|                    |   5   | |   2   | |   4   |Y                    +-------+ +-------+ +-------+                        0,0 =&gt; +-------+                               |   1   |                               +-------+                               +-------+                               |   3   |                               +-------+</code></pre><p>然鹅桌面窗口却是用最左边显示器的左边缘和最上边显示器的上边缘的交点为<mark class="hl-label purple">二维坐标系原点</mark> </p><div class="note info modern"><p>也就是说这个原点可能不在显示器上。</p></div><div class="tabs" id="test1"><ul class="nav-tabs"><button type="button" class="tab  active" data-href="test1-1">有最上 && 最左的显示器</button><button type="button" class="tab " data-href="test1-2">无最上 && 最左的显示器</button></ul><div class="tab-contents"><div class="tab-item-content active" id="test1-1"><pre><code>   --&gt; X      0,0 =&gt; +-------+ +-------+ +-------+|                    |   5   | |   2   | |   4   |Y                    +-------+ +-------+ +-------+                               +-------+                               |   1   |                               +-------+                               +-------+                               |   3   |                               +-------+</code></pre></div><div class="tab-item-content" id="test1-2"><pre><code>   --&gt; X      0,0 =&gt; + - - - - +-------+ +-------+|                    |         |   2   | |   4   |Y                              +-------+ +-------+                     |         +-------+                               |   1   |                     |         +-------+                     +-------+ +-------+                     |   5   | |   3   |                     +-------+ +-------+</code></pre><p>一般也没人整这么奇怪的东西把。<del>不过最少 2 显示器就可以</del></p></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div><p><a href="https://learn.microsoft.com/zh-cn/windows/win32/gdi/window-coordinate-system">窗口坐标系 - Windows 应用开发文档</a></p><p>换句话说，以桌面窗口来看，所有的有效显示位置的坐标都为整数正值；以屏幕来看，所有的有效显示位置的坐标都是整数值。</p><p>知道了这一点，下面的东西才好说。</p><h3 id="显示-1"><a href="#显示-1" class="headerlink" title="显示"></a>显示</h3><h4 id="单显示器"><a href="#单显示器" class="headerlink" title="单显示器"></a>单显示器</h4><p>一个显示器好说，直接用 <code>ffplay</code> 创建一个无边框全屏窗口，缩放成屏幕大小，然后发送 <mark class="hl-label blue">细胞分裂消息</mark>  ，再调用 <a href="https://learn.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-setparent"><code>SetParent</code> 函数</a> 设置为子窗口，欸，完成。</p><h4 id="多显示器"><a href="#多显示器" class="headerlink" title="多显示器"></a>多显示器</h4><p>多显示器有点难搞，但也挺简单，主要原因出在桌面的坐标系和屏幕坐标系使用不同原点，但其实挺好解决的。</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;Windows.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;vector&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;iostream&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 回调函数，用于枚举显示器</span></span><br><span class="line"><span class="function">BOOL CALLBACK <span class="title">MonitorEnumProc</span><span class="params">(</span></span></span><br><span class="line"><span class="params"><span class="function">    HMONITOR hMonitor,</span></span></span><br><span class="line"><span class="params"><span class="function">    HDC      hdcMonitor,</span></span></span><br><span class="line"><span class="params"><span class="function">    LPRECT   lprcMonitor,</span></span></span><br><span class="line"><span class="params"><span class="function">    LPARAM   dwData</span></span></span><br><span class="line"><span class="params"><span class="function">)</span> </span>&#123;</span><br><span class="line">    std::vector&lt;POINT&gt;* monitors = <span class="keyword">reinterpret_cast</span>&lt;std::vector&lt;POINT&gt;*&gt;(dwData);</span><br><span class="line">    POINT topLeft = &#123; lprcMonitor-&gt;left, lprcMonitor-&gt;top &#125;;</span><br><span class="line">    monitors-&gt;<span class="built_in">push_back</span>(topLeft);</span><br><span class="line">    <span class="keyword">return</span> TRUE;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="type">int</span> <span class="title">main</span><span class="params">()</span> </span>&#123;</span><br><span class="line">    std::vector&lt;POINT&gt; monitorPositions;</span><br><span class="line"></span><br><span class="line">    <span class="comment">// 枚举所有显示器</span></span><br><span class="line">    <span class="built_in">EnumDisplayMonitors</span>(</span><br><span class="line">        <span class="literal">NULL</span>,           <span class="comment">// 指定整个虚拟桌面</span></span><br><span class="line">        <span class="literal">NULL</span>,           <span class="comment">// 无裁剪区域</span></span><br><span class="line">        MonitorEnumProc,</span><br><span class="line">        <span class="built_in">reinterpret_cast</span>&lt;LPARAM&gt;(&amp;monitorPositions)</span><br><span class="line">    );</span><br><span class="line"></span><br><span class="line">    <span class="comment">// 输出结果</span></span><br><span class="line">    std::cout &lt;&lt; <span class="string">&quot;找到 &quot;</span> &lt;&lt; monitorPositions.<span class="built_in">size</span>() &lt;&lt; <span class="string">&quot; 个显示器:\n&quot;</span>;</span><br><span class="line">    <span class="keyword">for</span> (<span class="type">size_t</span> i = <span class="number">0</span>; i &lt; monitorPositions.<span class="built_in">size</span>(); ++i) &#123;</span><br><span class="line">        std::cout &lt;&lt; <span class="string">&quot;显示器 &quot;</span> &lt;&lt; i + <span class="number">1</span> &lt;&lt; <span class="string">&quot; 左上角位置: (&quot;</span></span><br><span class="line">                  &lt;&lt; monitorPositions[i].x &lt;&lt; <span class="string">&quot;, &quot;</span></span><br><span class="line">                  &lt;&lt; monitorPositions[i].y &lt;&lt; <span class="string">&quot;)\n&quot;</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>这段代码通过调用 <a href="https://learn.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-enumdisplaymonitors">EnumDusplayMonitors</a> 函数，可以获取所有显示器的<strong>屏幕左上角</strong>位置。<br>但是这里的使用的是<strong>屏幕坐标系</strong>(原点在主显示器的左上角)，但我们需要的是<strong>桌面窗口</strong>的位置。</p><p>所以我们使用 <a href="https://learn.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-findwindowa">MapWindowPoints</a> 来达到将<strong>屏幕坐标</strong>转化为基于<strong>桌面窗口</strong>的坐标的目的。</p><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;Windows.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;vector&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;iostream&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 回调函数，用于枚举显示器</span></span><br><span class="line"><span class="function">BOOL CALLBACK <span class="title">MonitorEnumProc</span><span class="params">(</span></span></span><br><span class="line"><span class="params"><span class="function">    HMONITOR hMonitor,</span></span></span><br><span class="line"><span class="params"><span class="function">    HDC      hdcMonitor,</span></span></span><br><span class="line"><span class="params"><span class="function">    LPRECT   lprcMonitor,</span></span></span><br><span class="line"><span class="params"><span class="function">    LPARAM   dwData</span></span></span><br><span class="line"><span class="params"><span class="function">)</span> </span>&#123;</span><br><span class="line">    std::vector&lt;POINT&gt;* monitors = <span class="keyword">reinterpret_cast</span>&lt;std::vector&lt;POINT&gt;*&gt;(dwData);</span><br><span class="line">    POINT topLeft = &#123; lprcMonitor-&gt;left, lprcMonitor-&gt;top &#125;;</span><br><span class="line">    monitors-&gt;<span class="built_in">push_back</span>(topLeft);</span><br><span class="line">    <span class="keyword">return</span> TRUE;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="function">HWND <span class="title">FindWindowA</span><span class="params">(</span></span></span><br><span class="line"><span class="params"><span class="function">    LPCSTR lpClassName,</span></span></span><br><span class="line"><span class="params"><span class="function">    LPCSTR lpWindowName</span></span></span><br><span class="line"><span class="params"><span class="function">)</span></span>;</span><br><span class="line"></span><br><span class="line"><span class="function"><span class="type">int</span> <span class="title">main</span><span class="params">()</span> </span>&#123;</span><br><span class="line">    std::vector&lt;POINT&gt; monitorPositions;</span><br><span class="line"></span><br><span class="line">    <span class="comment">// 枚举所有显示器</span></span><br><span class="line">    <span class="built_in">EnumDisplayMonitors</span>(</span><br><span class="line">        <span class="literal">NULL</span>,           <span class="comment">// 指定整个虚拟桌面</span></span><br><span class="line">        <span class="literal">NULL</span>,           <span class="comment">// 无裁剪区域</span></span><br><span class="line">        MonitorEnumProc,</span><br><span class="line">        <span class="built_in">reinterpret_cast</span>&lt;LPARAM&gt;(&amp;monitorPositions)</span><br><span class="line">    );</span><br><span class="line"></span><br><span class="line">    <span class="comment">// 输出结果</span></span><br><span class="line">    std::cout &lt;&lt; <span class="string">&quot;找到 &quot;</span> &lt;&lt; monitorPositions.<span class="built_in">size</span>() &lt;&lt; <span class="string">&quot; 个显示器:\n&quot;</span>;</span><br><span class="line">    <span class="comment">// 查找 Program Manager 窗口的句柄</span></span><br><span class="line">    HWND hProgman = <span class="built_in">FindWindowA</span>(<span class="string">&quot;Progman&quot;</span>, <span class="literal">NULL</span>);</span><br><span class="line">    <span class="keyword">for</span> (<span class="type">size_t</span> i = <span class="number">0</span>; i &lt; monitorPositions.<span class="built_in">size</span>(); ++i) &#123;</span><br><span class="line">        POINT pt = monitorPositions[i]; <span class="comment">// 原始坐标</span></span><br><span class="line"></span><br><span class="line">        <span class="comment">// 映射坐标到桌面窗口坐标系</span></span><br><span class="line">        <span class="built_in">MapWindowPoints</span>(</span><br><span class="line">            <span class="literal">NULL</span>,               <span class="comment">// 从虚拟桌面映射</span></span><br><span class="line">            hProgman,           <span class="comment">// 到桌面窗口</span></span><br><span class="line">            &amp;pt,                <span class="comment">// 要转换的点</span></span><br><span class="line">            <span class="number">1</span>                   <span class="comment">// 点的数量</span></span><br><span class="line">        );</span><br><span class="line"></span><br><span class="line">        std::cout &lt;&lt; <span class="string">&quot;显示器 &quot;</span> &lt;&lt; i + <span class="number">1</span> &lt;&lt; <span class="string">&quot; 左上角位置: (&quot;</span></span><br><span class="line">                  &lt;&lt; pt.x &lt;&lt; <span class="string">&quot;, &quot;</span> &lt;&lt; pt.y &lt;&lt; <span class="string">&quot;)\n&quot;</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>这样就可以获取到所有窗口基于桌面窗口的位置了。</p><p>再使用 <code>ffplay</code> 创建视频窗口，放置进桌面，调整位置，便可达到效果</p>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;&#39;&gt;
&lt;div class=&quot;note default simple&quot;&gt;&lt;p&gt;阅读之前：请先了解有关术语，如句柄、窗口、消息等&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;note danger modern&quot;</summary>
      
    
    
    
    <category term="Windows" scheme="https://blog.admincmd.xyz/categories/Windows/"/>
    
    
    <category term="Windows" scheme="https://blog.admincmd.xyz/tags/Windows/"/>
    
    <category term="窗口" scheme="https://blog.admincmd.xyz/tags/%E7%AA%97%E5%8F%A3/"/>
    
    <category term="视频壁纸实现" scheme="https://blog.admincmd.xyz/tags/%E8%A7%86%E9%A2%91%E5%A3%81%E7%BA%B8%E5%AE%9E%E7%8E%B0/"/>
    
  </entry>
  
  <entry>
    <title>计算机名：你是来找茬的吧</title>
    <link href="https://blog.admincmd.xyz/post/85a19332b66c/index.html"/>
    <id>https://blog.admincmd.xyz/post/85a19332b66c/index.html</id>
    <published>2025-06-08T13:36:37.123Z</published>
    <updated>2025-06-08T13:36:37.123Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content='该文章讲述了有关计算机名的基本概念，以及如何强制性修改计算机名的方法。（欢迎进站访问|´・ω・) ノ）'><p><em>X:\Users\Admin-cmd\Hexo-Files\003&gt;copy con title.md</em></p><h2 id="视频"><a href="#视频" class="headerlink" title="视频"></a>视频</h2><p><a href="https://www.bilibili.com/video/BV1q7421K7zC/" title="https://www.bilibili.com/video/BV1q7421K7zC/">BiliBili</a></p><h2 id="关于计算机名"><a href="#关于计算机名" class="headerlink" title="关于计算机名"></a>关于计算机名</h2><p>计算机名用于在网络中标识计算机的一种方式</p><p>计算机名一般与 hostname (主机名)相同</p><p>由于NETBIOS协议的限制，一般电脑的hostname不能超过15字符(十六字节的缓冲区里，第16个字符必须为NULL)。</p><p>同时，计算机名仍有特殊字符限制，例如：~!@#$%^&amp;*()&lt;&gt;?:”{}[];’|&#x2F;., 等</p><p>计算机名位于注册表以下的几个位置: (经过筛选)</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName[ComputerName]</span><br><span class="line">HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName[ComputerName]</span><br><span class="line">HKLM\SYSTEM\CurrentControlSet\Services\Eventlog[ComputerName]</span><br><span class="line">HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters[NV Hostname]</span><br><span class="line">HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters[Hostname]</span><br></pre></td></tr></table></figure><p>更改这些注册表，可以强制修改计算机名。</p><hr><h2 id="实际操作"><a href="#实际操作" class="headerlink" title="实际操作"></a>实际操作</h2><p>为此，我特意写了一个程序</p><p> <a href="https://admincmd.lanzout.com/iCiEf1muu1lg" title="Title">蓝奏云</a> </p><p>使用此程序可以强制性修改计算机名</p><p><img src="/IMG/3_0.PNG" alt=" File : /IMG/3_0.PNG"></p><p>!!! warning 警告<br>    一定要用管理员启动！<br>    请在打开前关闭杀毒软件。<br>    在实体机上运行导致系统损坏，自行负责。</p><h3 id="1-有特殊字符，不超过-15-字符限制"><a href="#1-有特殊字符，不超过-15-字符限制" class="headerlink" title="1 有特殊字符，不超过 15 字符限制"></a>1 有特殊字符，不超过 15 字符限制</h3><p>在修改后，计算机没有任何异常。</p><p>重启试逝</p><p>在 Windows 登录界面，出现’密码不正确’的提示。<br>但是这个用户没有设置密码</p><pre><code>推测原因: 计算机管理读取配置时读取到反斜杠导致用户校验失败，从而出现&#39;密码不正确&#39;</code></pre><h3 id="2-有特殊字符，超过-15-字符限制"><a href="#2-有特殊字符，超过-15-字符限制" class="headerlink" title="2 有特殊字符，超过 15 字符限制"></a>2 有特殊字符，超过 15 字符限制</h3><p>在修改后，控制面板已经无法打开</p><p>应用程序因’无足够内存’而无法打开</p><p>电源选项失效</p><p>命令提示符正常，但 shutdown 无法重启、关机</p><pre><code>推测: shutdown 识别到错误的计算机名，导致无法对目标计算机 (本机) 进行电源操作</code></pre><p>重启后蓝屏</p><pre><code>推测: 因为 NETBIOS 协议的 15 字符限制，导致 Windows 读取计算机名时被截断，从而引发蓝屏</code></pre><h2 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h2><ol><li>CSDN - haiross - windows 通过修改注册表来修改主机名</li></ol><p><em>已复制</em>     <em>1 个文件。</em></p><p><em>X:\Users\Admin-cmd\Hexo-Files\003&gt;_</em></p>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;该文章讲述了有关计算机名的基本概念，以及如何强制性修改计算机名的方法。（欢迎进站访问|´・ω・) ノ）&#39;&gt;

&lt;p&gt;&lt;em&gt;X:&#92;Users&#92;Admin-cmd&#92;Hexo-Files&#92;003&amp;gt;copy co</summary>
      
    
    
    
    <category term="玩转系统" scheme="https://blog.admincmd.xyz/categories/%E7%8E%A9%E8%BD%AC%E7%B3%BB%E7%BB%9F/"/>
    
    
    <category term="tags" scheme="https://blog.admincmd.xyz/tags/tags/"/>
    
    <category term="windows" scheme="https://blog.admincmd.xyz/tags/windows/"/>
    
    <category term="胡改" scheme="https://blog.admincmd.xyz/tags/%E8%83%A1%E6%94%B9/"/>
    
  </entry>
  
  <entry>
    <title>当你把电脑时间乱调？！</title>
    <link href="https://blog.admincmd.xyz/post/fdc3bc3694e4/index.html"/>
    <id>https://blog.admincmd.xyz/post/fdc3bc3694e4/index.html</id>
    <published>2025-06-08T13:36:37.121Z</published>
    <updated>2025-06-08T13:36:37.121Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content='该页面介绍了使用启动选项和 SetSystemTime 函数修改 Windows 系统时间的方法。并将其调整至 1601 年和 10000 年。（欢迎进站访问|´・ω・) ノ）'><h2 id="视频"><a href="#视频" class="headerlink" title="视频"></a>视频</h2><p><a href="https://www.bilibili.com/video/BV154421F7nA/" title="https://www.bilibili.com/video/BV154421F7nA/">当你把电脑时间调至一万年？！</a><br><a href="https://www.bilibili.com/video/---/" title="https://www.bilibili.com/video/---/"></a></p><h2 id="系统时间"><a href="#系统时间" class="headerlink" title="系统时间"></a>系统时间</h2><p>Widnows 对于系统时间的修改有限制<br>，控制面板最多可到 2099 年<br>，data 命令最多可以修改 8099 年</p><h2 id="修改方式"><a href="#修改方式" class="headerlink" title="修改方式"></a>修改方式</h2><h3 id="YEAR-选项"><a href="#YEAR-选项" class="headerlink" title="YEAR 选项"></a>YEAR 选项</h3><p>YEAR 用于规定启动的年份</p><p>用法:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/YEAR=[YEAR]</span><br></pre></td></tr></table></figure><p>YEAR 整数型，定义启动后年份</p><p>据测试，启动选项可以修改范围是 1601-9999 年，超出此范围则卡死在第一启动阶段。</p><blockquote><p>[ i ] 个人推测,不代表权威观点。</p></blockquote><h3 id="SetSystemTime-函数"><a href="#SetSystemTime-函数" class="headerlink" title="SetSystemTime 函数"></a>SetSystemTime 函数</h3><p>设置当前系统时间和日期。 系统时间以协调世界时 (UTC) 表示。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">BOOL SetSystemTime(</span><br><span class="line">  [in] const SYSTEMTIME *lpSystemTime</span><br><span class="line">);</span><br></pre></td></tr></table></figure><h4 id="参数"><a href="#参数" class="headerlink" title="参数"></a>参数</h4><p><code>[in] lpSystemTime</code><br>指向包含新系统日期和时间的 SYSTEMTIME 结构的指针。</p><p>将忽略 SYSTEMTIME 结构的 wDayOfWeek 成员。</p><h4 id="返回值"><a href="#返回值" class="headerlink" title="返回值"></a>返回值</h4><p>如果该函数成功，则返回值为非零值。</p><p>如果函数失败，则返回值为零。 </p><hr><h2 id="调整方式（当你吧电脑时间调至一万年？！）"><a href="#调整方式（当你吧电脑时间调至一万年？！）" class="headerlink" title="调整方式（当你吧电脑时间调至一万年？！）"></a>调整方式（当你吧电脑时间调至一万年？！）</h2><h3 id="准备工作"><a href="#准备工作" class="headerlink" title="准备工作"></a>准备工作</h3><p>一台 Windwos 7-11 电脑</p><h2 id="正式进行"><a href="#正式进行" class="headerlink" title="正式进行"></a>正式进行</h2><h4 id="启动编辑"><a href="#启动编辑" class="headerlink" title="启动编辑"></a>启动编辑</h4><p>使用管理员执行 <code>BCDEDIT /SET OPTIONSEDIT 1</code> 以进入启动选项编辑模式。</p><p>重启计算机，会出现下图:</p><blockquote><p>如果没有出现该界面，请重试 1.2.1 步骤 (该步骤)</p></blockquote><p>!</p><p>插入空格后，输入 <code>/YEAR=9999</code> 后，按下 Enter 提交更改。</p><blockquote><p>再次重启后，计算机不会应用本次修改.</p></blockquote><h4 id="编辑完成"><a href="#编辑完成" class="headerlink" title="编辑完成"></a>编辑完成</h4><p><em>建议提前将时间设置为 23:59:00</em></p><p>在日期更为10000年时，系统不会发生太多错误 </p><p>&lt;!–WIN10 11咋这么卡呀？–&gt;</p><p>新建文件夹没有任何问题，Windows media player 因年份过高无法启动，系统基本应用程序正常运行。</p><p>重启后系统时间退回至 1988 年</p><p>!!! note “推测”<br>    推测: 系统时间保存失败。</p><p>对了，VMTool咋坏了？</p><h2 id="调整方式（把系统时间调回明朝会发生什么？）"><a href="#调整方式（把系统时间调回明朝会发生什么？）" class="headerlink" title="调整方式（把系统时间调回明朝会发生什么？）"></a>调整方式（把系统时间调回明朝会发生什么？）</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><span class="line">#include &lt;Windows.h&gt;</span><br><span class="line">#include &lt;iostream&gt;</span><br><span class="line"></span><br><span class="line">int main() &#123;</span><br><span class="line">// 获取当前系统时间</span><br><span class="line">SYSTEMTIME sysTime;</span><br><span class="line">GetLocalTime(&amp;sysTime);</span><br><span class="line"></span><br><span class="line">// 用户输入新的系统时间信息</span><br><span class="line">std::cout &lt;&lt; &quot;请输入新的系统时间：&quot; &lt;&lt; std::endl;</span><br><span class="line">std::cout &lt;&lt; &quot;年份: &quot;;</span><br><span class="line">std::cin &gt;&gt; sysTime.wYear;</span><br><span class="line">std::cout &lt;&lt; &quot;月份: &quot;;</span><br><span class="line">std::cin &gt;&gt; sysTime.wMonth;</span><br><span class="line">std::cout &lt;&lt; &quot;日期: &quot;;</span><br><span class="line">std::cin &gt;&gt; sysTime.wDay;</span><br><span class="line">std::cout &lt;&lt; &quot;小时: &quot;;</span><br><span class="line">std::cin &gt;&gt; sysTime.wHour;</span><br><span class="line">std::cout &lt;&lt; &quot;分钟: &quot;;</span><br><span class="line">std::cin &gt;&gt; sysTime.wMinute;</span><br><span class="line">std::cout &lt;&lt; &quot;秒数: &quot;;</span><br><span class="line">std::cin &gt;&gt; sysTime.wSecond;</span><br><span class="line">std::cout &lt;&lt; &quot;毫秒: &quot;;</span><br><span class="line">std::cin &gt;&gt; sysTime.wMilliseconds;</span><br><span class="line"></span><br><span class="line">// 调用SetSystemTime函数设置系统时间</span><br><span class="line">if (SetSystemTime(&amp;sysTime)) &#123;</span><br><span class="line">std::cout &lt;&lt; &quot;系统时间已成功设置！&quot; &lt;&lt; std::endl;</span><br><span class="line">&#125; else &#123;</span><br><span class="line">std::cout &lt;&lt; &quot;设置系统时间失败！错误码：&quot; &lt;&lt; GetLastError() &lt;&lt; std::endl;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">return 0;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>!!! note “”<br>    这是一段 C++ 代码。</p><p>!!! war “”<br>    注意要用管理员启动</p><h4 id="编辑完成-1"><a href="#编辑完成-1" class="headerlink" title="编辑完成"></a>编辑完成</h4><p>在日期更为 1601 年时，系统不会发生太多错误 </p><p>新建文件夹没有任何问题，Windows media player 正常运行，系统基本应用程序正常运行。</p><p>重启后系统时间至 2024 年</p><p>!!! note “推测”<br>    推测: 系统时间保存失败，且系统与时间服务器同步。</p><p>对了，VMTool双坏了？</p>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;该页面介绍了使用启动选项和 SetSystemTime 函数修改 Windows 系统时间的方法。并将其调整至 1601 年和 10000 年。（欢迎进站访问|´・ω・) ノ）&#39;&gt;

&lt;h2 id=&quot;视频&quot;&gt;&lt;a</summary>
      
    
    
    
    <category term="玩转系统" scheme="https://blog.admincmd.xyz/categories/%E7%8E%A9%E8%BD%AC%E7%B3%BB%E7%BB%9F/"/>
    
    
    <category term="tags" scheme="https://blog.admincmd.xyz/tags/tags/"/>
    
    <category term="windows" scheme="https://blog.admincmd.xyz/tags/windows/"/>
    
    <category term="胡改" scheme="https://blog.admincmd.xyz/tags/%E8%83%A1%E6%94%B9/"/>
    
  </entry>
  
  <entry>
    <title>文体样式表</title>
    <link href="https://blog.admincmd.xyz/post/2f16ca459582/index.html"/>
    <id>https://blog.admincmd.xyz/post/2f16ca459582/index.html</id>
    <published>2025-06-08T13:36:37.121Z</published>
    <updated>2025-06-08T13:36:37.122Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content='该页面是测试markdown语法格式的页面，主要测试各种样式效果。'><p>标题文本</p><h1 id="一级测试-ABCDEFG-abcdefg-0123456789-”-’"><a href="#一级测试-ABCDEFG-abcdefg-0123456789-”-’" class="headerlink" title="一级测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()"></a>一级测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</h1><h2 id="二级测试-ABCDEFG-abcdefg-0123456789-”-’"><a href="#二级测试-ABCDEFG-abcdefg-0123456789-”-’" class="headerlink" title="二级测试  ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()"></a>二级测试  ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</h2><h3 id="三级测试-ABCDEFG-abcdefg-0123456789-”-’"><a href="#三级测试-ABCDEFG-abcdefg-0123456789-”-’" class="headerlink" title="三级测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()"></a>三级测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</h3><h4 id="四级测试-ABCDEFG-abcdefg-0123456789-”-’"><a href="#四级测试-ABCDEFG-abcdefg-0123456789-”-’" class="headerlink" title="四级测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()"></a>四级测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</h4><h5 id="五级测试-ABCDEFG-abcdefg-0123456789-”-’"><a href="#五级测试-ABCDEFG-abcdefg-0123456789-”-’" class="headerlink" title="五级测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()"></a>五级测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</h5><h6 id="六级测试-ABCDEFG-abcdefg-0123456789-”-’"><a href="#六级测试-ABCDEFG-abcdefg-0123456789-”-’" class="headerlink" title="六级测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()"></a>六级测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</h6><p>测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| <code>-=[];&#39;\,./!@$%^&amp;*()   测试 ABCDEFG abcdefg 0123456789 ~_+&#123;&#125;:&quot;&lt;&gt;?| </code>-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</p><p><em>斜体测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;</em>()*</p><p><strong>粗体测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</strong></p><p>或 <strong>x</strong> A<strong>b</strong>c</p><p><strong><em>斜粗测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;</em>()</strong>*</p><blockquote><p>引用测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</p><blockquote><p>套娃引用测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</p></blockquote></blockquote><p>(可包含其他方式)</p><ol><li>有序列表测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</li><li><ul><li></li></ul></li><li>A</li><li>b</li></ol><p>(要创建有序列表，请在每个列表项前添加数字并紧跟一个英文句点。数字不必按数学顺序排列，但是列表应当以数字 1 起始。)</p><ul><li>无序列表测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</li><li>A</li><li>b</li><li>c</li></ul><p>（代码块通常采用四个空格或一个制表符缩进。当它们被放在列表中时，请将它们缩进八个空格或两个制表符。）</p><pre><code>    代码块测试 ABCDEFG abcdefg 0123456789 ~_+&#123;&#125;:&quot;&lt;&gt;?| `-=[];&#39;\,./!@$%^&amp;*()    2</code></pre><p>图片<br> <img src="/img/%E6%B5%8B%E8%AF%95.png" alt="1"></p><p>代码 <code>测试 ABCDEFG abcdefg 0123456789 ~_+&#123;&#125;:&quot;&lt;&gt;?| -=[];\,./!@$%^&amp;*()</code> scc<a href="HElp">^1</a>?</p><p><a href="#%E4%B8%80%E7%BA%A7%E6%B5%8B%E8%AF%95-ABCDEFG-abcdefg-0123456789-%E2%80%9D-%E2%80%99">Heading IDs</a></p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">围栏代码块测试 ABCDEFG abcdefg 0123456789 ~_+&#123;&#125;:&quot;&lt;&gt;?| `-=[];&#x27;\,./!@$%^&amp;*()</span><br></pre></td></tr></table></figure><p>分割线</p><hr><p>链接<br>这是一个链接 <a href="https://markdown.com.cn/">Markdown语法</a>。<br><a href="https://admincmd.xyz/" id="post">1</a><br><a href="https://admincmd.xyz/" id="post">2</a><br><a href="https://admincmd.xyz/" id="post">3</a></p><p>网址及邮箱地址<br><a href="https://markdown.com.cn/">https://markdown.com.cn</a><br><a href="mailto:&#x66;&#97;&#107;&#x65;&#x40;&#101;&#x78;&#x61;&#109;&#112;&#x6c;&#101;&#46;&#99;&#111;&#109;">&#x66;&#97;&#107;&#x65;&#x40;&#101;&#x78;&#x61;&#109;&#112;&#x6c;&#101;&#46;&#99;&#111;&#109;</a></p><p>不使用效果 *测试 ABCDEFG abcdefg 0123456789 ~_+{}:”&lt;&gt;?| &#96;-&#x3D;[];’,.&#x2F;!@$%^&amp;*()</p><p>(字符前插入反斜杠 \ )</p><p>!!! note “这个个个个叫标题”<br>    这是一段提示</p><p>!!! warning “这个叫标题”<br>    这是一段警告</p><p>!!! error “ERROR”<br>    这是个错误</p><p>[该功能为 BUTTERFLY 等主题独有]</p><div class="note simple"><p>默认 提示块标签</p></div><div class="note default simple"><p>default 提示块标签</p></div><div class="note primary simple"><p>primary 提示块标签</p></div><div class="note success simple"><p>success 提示块标签</p></div><div class="note info simple"><p>info 提示块标签</p></div><div class="note warning simple"><p>warning 提示块标签</p></div><div class="note danger simple"><p>danger 提示块标签</p></div><div class="note icon-padding simple"><i class="note-icon fab fa-cc-visa"></i><p>你是刷 Visa 还是 UnionPay</p></div><div class="note blue icon-padding simple"><i class="note-icon fas fa-bullhorn"></i><p>2021年快到了….</p></div><div class="note pink icon-padding simple"><i class="note-icon fas fa-car-crash"></i><p>小心开车 安全至上</p></div><div class="note red icon-padding simple"><i class="note-icon fas fa-fan"></i><p>这是三片呢？还是四片？</p></div><div class="note orange icon-padding simple"><i class="note-icon fas fa-battery-half"></i><p>你是刷 Visa 还是 UnionPay</p></div><div class="note purple icon-padding simple"><i class="note-icon far fa-hand-scissors"></i><p>剪刀石头布</p></div><div class="note green icon-padding simple"><i class="note-icon fab fa-internet-explorer"></i><p>前端最讨厌的浏览器</p></div><div class="note modern"><p>默认 提示块标签</p></div><div class="note default modern"><p>default 提示块标签</p></div><div class="note primary modern"><p>primary 提示块标签</p></div><div class="note success modern"><p>success 提示块标签</p></div><div class="note info modern"><p>info 提示块标签</p></div><div class="note warning modern"><p>warning 提示块标签</p></div><div class="note danger modern"><p>danger 提示块标签</p></div><div class="note modern"><p>默认 提示块标签</p></div><div class="note default modern"><p>default 提示块标签</p></div><div class="note primary modern"><p>primary 提示块标签</p></div><div class="note success modern"><p>success 提示块标签</p></div><div class="note info modern"><p>info 提示块标签</p></div><div class="note warning modern"><p>warning 提示块标签</p></div><div class="note danger modern"><p>danger 提示块标签</p></div><div class="note disabled"><p>默认 提示块标签</p></div><div class="note default disabled"><p>default 提示块标签</p></div><div class="note primary disabled"><p>primary 提示块标签</p></div><div class="note success disabled"><p>success 提示块标签</p></div><div class="note info disabled"><p>info 提示块标签</p></div><div class="note warning disabled"><p>warning 提示块标签</p></div><div class="note danger disabled"><p>danger 提示块标签</p></div><div class="note no-icon flat"><p>默认 提示块标签</p></div><div class="note default no-icon flat"><p>default 提示块标签</p></div><div class="note primary no-icon flat"><p>primary 提示块标签</p></div><div class="note success no-icon flat"><p>success 提示块标签</p></div><div class="note info no-icon flat"><p>info 提示块标签</p></div><div class="note warning no-icon flat"><p>warning 提示块标签</p></div><div class="note danger no-icon flat"><p>danger 提示块标签</p></div><p>Gallery相册图库</p><div class="gallery-group-main"><figure class="gallery-group">  <img class="gallery-group-img no-lightbox" src='https://i.loli.net/2019/11/10/T7Mu8Aod3egmC4Q.png' alt="Group Image Gallery">  <figcaption>  <div class="gallery-group-name">壁纸</div>  <p>收藏的一些壁纸</p>  <a href='/Gallery/wallpaper'></a>  </figcaption>  </figure>  <figure class="gallery-group">  <img class="gallery-group-img no-lightbox" src='https://i.loli.net/2019/12/25/8t97aVlp4hgyBGu.jpg' alt="Group Image Gallery">  <figcaption>  <div class="gallery-group-name">漫威</div>  <p>关于漫威的图片</p>  <a href='/Gallery/marvel'></a>  </figcaption>  </figure>  <figure class="gallery-group">  <img class="gallery-group-img no-lightbox" src='https://i.loli.net/2019/12/25/hOqbQ3BIwa6KWpo.jpg' alt="Group Image Gallery">  <figcaption>  <div class="gallery-group-name">OH MY GIRL</div>  <p>关于OH MY GIRL的图片</p>  <a href='/Gallery/ohmygirl'></a>  </figcaption>  </figure>  </div><p>测试</p><div class="gallery-container" data-type="data" data-button="">      <div class="gallery-data">[{"url":"/img/测试.png","alt":""}]</div>      <div class="gallery-items">      </div>    </div><p>哪个英文字母最酷？ <span class="hide-inline"><button type="button" class="hide-button" style="background-color: #FF7242;color: #fff">查看答案  </button><span class="hide-content">因为西装裤(C装酷)</span></span></p><p>门里站着一个人? <span class="hide-inline"><button type="button" class="hide-button" style="">Click  </button><span class="hide-content">闪</span></span></p><p>查看答案</p><div class="hide-block"><button type="button" class="hide-button" style="">查看答案    </button><div class="hide-content"><p>傻子，怎么可能有答案</p></div></div><details class="toggle" ><summary class="toggle-button" style="">Butterfly安装方法</summary><div class="toggle-content"><p>在你的博客根目录里</p><p>git clone -b master <a href="https://blog.admincmd.xyz/url.html?url=https://github.com/jerryc127/hexo-theme-butterfly.git">https://blog.admincmd.xyz/url.html?url=https://github.com/jerryc127/hexo-theme-butterfly.git</a> themes&#x2F;Butterfly</p><p>如果想要安装比较新的dev分支，可以</p><p>git clone -b dev <a href="https://blog.admincmd.xyz/url.html?url=https://github.com/jerryc127/hexo-theme-butterfly.git">https://blog.admincmd.xyz/url.html?url=https://github.com/jerryc127/hexo-theme-butterfly.git</a> themes&#x2F;Butterfly</p></div></details><!-- <div class="tabs" id="unique-name"><ul class="nav-tabs no-default"></ul><div class="tab-contents"></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div> --><!--  --><!-- Unique name   : Unique name of tabs block tag without comma. --><pre><code>            &lt;!-- Will be used in #id&#39;s as prefix for each tab with their index numbers. --&gt;            &lt;!-- If there are whitespaces in name, for generate #id all whitespaces will replaced by dashes. --&gt;            &lt;!-- Only for current url of post/page must be unique! --&gt;</code></pre><!-- [index]       : Index number of active tab. --><pre><code>            &lt;!-- If not specified, first tab (1) will be selected. --&gt;            &lt;!-- If index is -1, no tab will be selected. It&#39;s will be something like spoiler. --&gt;            &lt;!-- Optional parameter. --&gt;</code></pre><!-- [Tab caption] : Caption of current tab. --><pre><code>            &lt;!-- If not caption specified, unique name with tab index suffix will be used as caption of tab. --&gt;            &lt;!-- If not caption specified, but specified icon, caption will empty. --&gt;            &lt;!-- Optional parameter. --&gt;</code></pre><!-- [@icon]       : FontAwesome icon name (full-name, look like 'fas fa-font') --><pre><code>            &lt;!-- Can be specified with or without space; e.g. &#39;Tab caption @icon&#39; similar to &#39;Tab caption@icon&#39;. --&gt;            &lt;!-- Optional parameter. --&gt;</code></pre><!--  --><!--  --><div class="tabs" id="test1"><ul class="nav-tabs"><button type="button" class="tab  active" data-href="test1-1">test1 1</button><button type="button" class="tab " data-href="test1-2">test1 2</button><button type="button" class="tab " data-href="test1-3">test1 3</button></ul><div class="tab-contents"><div class="tab-item-content active" id="test1-1"><p><strong>This is Tab 1.</strong></p></div><div class="tab-item-content" id="test1-2"><p><strong>This is Tab 2.</strong></p></div><div class="tab-item-content" id="test1-3"><p><strong>This is Tab 3.</strong></p></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div><div class="tabs" id="test2"><ul class="nav-tabs"><button type="button" class="tab " data-href="test2-1">test2 1</button><button type="button" class="tab " data-href="test2-2">test2 2</button><button type="button" class="tab  active" data-href="test2-3">test2 3</button></ul><div class="tab-contents"><div class="tab-item-content" id="test2-1"><p><strong>This is Tab 1.</strong></p></div><div class="tab-item-content" id="test2-2"><p><strong>This is Tab 2.</strong></p></div><div class="tab-item-content active" id="test2-3"><p><strong>This is Tab 3.</strong></p></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div><div class="tabs" id="test3"><ul class="nav-tabs no-default"><button type="button" class="tab " data-href="test3-1">test3 1</button><button type="button" class="tab " data-href="test3-2">test3 2</button><button type="button" class="tab " data-href="test3-3">test3 3</button></ul><div class="tab-contents"><div class="tab-item-content" id="test3-1"><p><strong>This is Tab 1.</strong></p></div><div class="tab-item-content" id="test3-2"><p><strong>This is Tab 2.</strong></p></div><div class="tab-item-content" id="test3-3"><p><strong>This is Tab 3.</strong></p></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div><div class="tabs" id="test4"><ul class="nav-tabs"><button type="button" class="tab  active" data-href="test4-1">第一个Tab</button><button type="button" class="tab " data-href="test4-2"><i class="fab fa-apple-pay" style="text-align: center;"></i></button><button type="button" class="tab " data-href="test4-3"><i class="fas fa-bomb"></i>炸弹</button></ul><div class="tab-contents"><div class="tab-item-content active" id="test4-1"><p><strong>tab名字为第一个Tab</strong></p></div><div class="tab-item-content" id="test4-2"><p><strong>只有图标 没有Tab名字</strong></p></div><div class="tab-item-content" id="test4-3"><p><strong>名字+icon</strong></p></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div><a class="btn-beautify [color] [style] [layout] [position] [size]" href="/%5Burl%5D"   title="[text]"><i class="[icon]"></i><span>[text]</span></a><p>[url]         : 链接<br>[text]        : 按钮文字<br>[icon]        : [可选] 图标<br>[color]       : [可选] 按钮背景顔色(默认style时）<br>                      按钮字体和边框顔色(outline时)<br>                      default&#x2F;blue&#x2F;pink&#x2F;red&#x2F;purple&#x2F;orange&#x2F;green<br>[style]       : [可选] 按钮样式 默认实心<br>                      outline&#x2F;留空<br>[layout]      : [可选] 按钮佈局 默认为line<br>                      block&#x2F;留空<br>[position]    : [可选] 按钮位置 前提是设置了layout为block 默认为左边<br>                      center&#x2F;right&#x2F;留空<br>[size]        : [可选] 按钮大小<br>                      larger&#x2F;留空</p><p>This is my website, click the button <a class="btn-beautify " href="https://butterfly.js.org/"   title="Butterfly"><span>Butterfly</span></a><br>This is my website, click the button <a class="btn-beautify " href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><br>This is my website, click the button <a class="btn-beautify outline" href="https://butterfly.js.org/"   title="Butterfly"><span>Butterfly</span></a><br>This is my website, click the button <a class="btn-beautify outline" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><br>This is my website, click the button <a class="btn-beautify larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a></p><hr><a class="btn-beautify block" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify block center larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify block right outline larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><hr><a class="btn-beautify larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify blue larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify pink larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify red larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify purple larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify orange larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify green larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><hr><div class="btn-center"><a class="btn-beautify outline larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify outline blue larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify outline pink larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify outline red larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify outline purple larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify outline orange larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a><a class="btn-beautify outline green larger" href="https://butterfly.js.org/"   title="Butterfly"><i class="far fa-hand-point-right"></i><span>Butterfly</span></a></div><p>臣亮言：<mark class="hl-label default">先帝</mark> 创业未半，而<mark class="hl-label blue">中道崩殂</mark> 。今天下三分，<mark class="hl-label pink">益州疲敝</mark> ，此诚<mark class="hl-label red">危急存亡之秋</mark> 也！然侍衞之臣，不懈于内；<mark class="hl-label purple">忠志之士</mark> ，忘身于外者，盖追先帝之殊遇，欲报之于陛下也。诚宜开张圣听，以光先帝遗德，恢弘志士之气；不宜妄自菲薄，引喻失义，以塞忠谏之路也。<br>宫中、府中，俱为一体；陟罚臧否，不宜异同。若有<mark class="hl-label orange">作奸</mark> 、<mark class="hl-label green">犯科</mark> ，及为忠善者，宜付有司，论其刑赏，以昭陛下平明之治；不宜偏私，使内外异法也。</p><hr><div class="timeline color"><div class='timeline-item headline'><div class='timeline-item-title'><div class='item-circle'><p>title</p></div></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>title</p></div></div><div class='timeline-item-content'><p>xxxxx</p></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>title</p></div></div><div class='timeline-item-content'><p>xxxxx</p></div></div></div><hr><div class="timeline undefined"><div class='timeline-item headline'><div class='timeline-item-title'><div class='item-circle'><p>2022</p></div></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>01-02</p></div></div><div class='timeline-item-content'><p>这是测试页面</p></div></div></div><hr><div class="timeline pink"><div class='timeline-item headline'><div class='timeline-item-title'><div class='item-circle'><p>2022</p></div></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>01-02</p></div></div><div class='timeline-item-content'><p>这是测试页面</p></div></div></div><hr><div class="timeline orange"><div class='timeline-item headline'><div class='timeline-item-title'><div class='item-circle'><p>2022</p></div></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>01-02</p></div></div><div class='timeline-item-content'><p>这是测试页面</p></div></div></div><hr><div class="flink"><div class="flink-name">友情链接</div><div class="flink-desc">那些人，那些事</div> <div class="flink-list">          <div class="flink-list-item" style="/*background-color:#383838*/">            <a href="https://jerryc.me/" title="JerryC" target="_blank">              <div class="flink-item-icon">                <img class="no-lightbox" src="https://jerryc.me/img/avatar.png" onerror='this.onerror=null;this.src="/img/404.gif"' alt="JerryC" />              </div>              <div class="flink-item-name">JerryC</div>               <div class="flink-item-desc" title="今日事,今日毕">今日事,今日毕</div>            </a>          </div>          <div class="flink-list-item" style="/*background-color:#383838*/">            <a href="https://hexo.io/zh-tw/" title="Hexo" target="_blank">              <div class="flink-item-icon">                <img class="no-lightbox" src="https://d33wubrfki0l68.cloudfront.net/6657ba50e702d84afb32fe846bed54fba1a77add/827ae/logo.svg" onerror='this.onerror=null;this.src="/img/404.gif"' alt="Hexo" />              </div>              <div class="flink-item-name">Hexo</div>               <div class="flink-item-desc" title="快速、简单且强大的网志框架">快速、简单且强大的网志框架</div>            </a>          </div></div><div class="flink-name">网站</div><div class="flink-desc">值得推荐的网站</div> <div class="flink-list">          <div class="flink-list-item" style="/*background-color:#383838*/">            <a href="https://www.youtube.com/" title="Youtube" target="_blank">              <div class="flink-item-icon">                <img class="no-lightbox" src="https://i.loli.net/2020/05/14/9ZkGg8v3azHJfM1.png" onerror='this.onerror=null;this.src="/img/404.gif"' alt="Youtube" />              </div>              <div class="flink-item-name">Youtube</div>               <div class="flink-item-desc" title="视频网站">视频网站</div>            </a>          </div>          <div class="flink-list-item" style="/*background-color:#383838*/">            <a href="https://www.weibo.com/" title="Weibo" target="_blank">              <div class="flink-item-icon">                <img class="no-lightbox" src="https://i.loli.net/2020/05/14/TLJBum386vcnI1P.png" onerror='this.onerror=null;this.src="/img/404.gif"' alt="Weibo" />              </div>              <div class="flink-item-name">Weibo</div>               <div class="flink-item-desc" title="中国最大社交分享平台">中国最大社交分享平台</div>            </a>          </div>          <div class="flink-list-item" style="/*background-color:#383838*/">            <a href="https://twitter.com/" title="Twitter" target="_blank">              <div class="flink-item-icon">                <img class="no-lightbox" src="https://i.loli.net/2020/05/14/5VyHPQqR6LWF39a.png" onerror='this.onerror=null;this.src="/img/404.gif"' alt="Twitter" />              </div>              <div class="flink-item-name">Twitter</div>               <div class="flink-item-desc" title="社交分享平台">社交分享平台</div>            </a>          </div></div></div><hr><blockquote><p>[!NOTE]<br>Highlights information that users should take into account, even when skimming.</p></blockquote><blockquote><p>[!TIP]<br>Optional information to help a user be more successful.</p></blockquote><blockquote><p>[!IMPORTANT]<br>Crucial information necessary for users to succeed.</p></blockquote><blockquote><p>[!WARNING]<br>Critical content demanding immediate user attention due to potential risks.</p></blockquote><blockquote><p>[!CAUTION]<br>Negative potential consequences of an action.</p></blockquote><hr><table><thead><tr><th>语法</th><th>描述</th></tr></thead><tbody><tr><td>头部</td><td>标题</td></tr><tr><td>段落</td><td>文本</td></tr></tbody></table><table><thead><tr><th align="left">语法</th><th align="center">描述</th><th align="right">测试文本</th></tr></thead><tbody><tr><td align="left">头部</td><td align="center">标题</td><td align="right">这是这个</td></tr><tr><td align="left">段落</td><td align="center">文本</td><td align="right">还有更多</td></tr></tbody></table><p>脚注测试<a href="HElp">^1</a><br>大脚注测试<a href="%E8%84%9A%E6%B3%A8%E6%B5%8B%E8%AF%952">^bignote</a></p><p>Text prior to footnote reference.[^2]<br>[^2]: Comment to include in footnote.</p><ul><li><input checked="" disabled="" type="checkbox"> wcnm</li><li><input checked="" disabled="" type="checkbox"> Write the press release</li><li><input disabled="" type="checkbox"> Update the website</li><li><input disabled="" type="checkbox"> Contact the media</li></ul><figure class="highlight plaintext"><figcaption><span>[title] [lang:language] [url] [link text] [additional options]</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">code snippet</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><figcaption><span>[title] [lang:language] [url] [link text] [additional options]</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">code snippet</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><figcaption><span>[title] [url] [link text] [additional options]</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">code snippet</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;该页面是测试markdown语法格式的页面，主要测试各种样式效果。&#39;&gt;

&lt;p&gt;标题文本&lt;/p&gt;
&lt;h1 id=&quot;一级测试-ABCDEFG-abcdefg-0123456789-”-’&quot;&gt;&lt;a href=&quot;#一级</summary>
      
    
    
    
    
    <category term="tags" scheme="https://blog.admincmd.xyz/tags/tags/"/>
    
  </entry>
  
  <entry>
    <title>盘点把C盘弹出去的那些事</title>
    <link href="https://blog.admincmd.xyz/post/1576075e8d7d/index.html"/>
    <id>https://blog.admincmd.xyz/post/1576075e8d7d/index.html</id>
    <published>2025-06-08T13:36:37.120Z</published>
    <updated>2025-06-08T13:36:37.120Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content='（水文）有关将系统盘强制当 U 盘弹出的方式。（欢迎进站访问|´・ω・) ノ）'>*C:\Windows\System32>_*<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=550 height=86 src="//music.163.com/outchain/player?type=2&id=33166666&auto=1&height=66"></iframe><p><em>这里使用的是 Windows 7</em><br>总所周知，带热插拔的硬盘，CD呀DVD呀，U盘，都具有弹出选项。</p><p>So，系统盘能弹出去吗？</p><p>答案吧……</p><p>可以！<br>通过下面这条命令可以弹出你想要弹出的任何盘<em>（包括正在使用的盘）</em></p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">mountvol &lt;drive_letter&gt; /d</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&lt;Drive_letter&gt;: 指弹出的磁盘盘符，带冒号</span><br></pre></td></tr></table></figure><p>然后你就发现，C盘没了……^_^       [UP 暗笑中…]<br>此时，你所看到的窗口，都是内存中的缓存，</p><p>此时计算机会变得卡顿，无法打开任何应用程序</p><p>要想恢复，只能强制重新启动计算机。</p><p>但是，</p><p>如果你又找了个WIN 10 的盘盘符更为C，</p><p>那么，</p><p>就会出现 Windows 7 + 10 &#x3D; 17 !</p><p>啊对，半Win7半Win10</p><pre><code>创建、删除或列出卷装入点。MOUNTVOL [drive:]path VolumeNameMOUNTVOL [drive:]path /DMOUNTVOL [drive:]path /LMOUNTVOL [drive:]path /PMOUNTVOL /RMOUNTVOL /NMOUNTVOL /EMOUNTVOL drive: /Spath        指定装入点将驻留的现有 NTFS 目录。VolumeName  指定装入点的目标的卷名称。/D          从指定的目录中删除卷装入点。/L          列出指定目录的已装入的卷名称。/P          从指定目录删除卷装入点，卸下此卷并使此卷无法装入。你可以创建            一个卷来再次使此卷可以装入。/R          删除不在系统中的、卷的装入点目录和注册表设置。/N          禁用新卷的自动装入。/E          再次启用新卷的自动装入。/S          将 EFI 系统分区装载到提供的驱动器。</code></pre><p>这里用的是 mountvol 功能的删除载入点功能。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;（水文）有关将系统盘强制当 U 盘弹出的方式。（欢迎进站访问|´・ω・) ノ）&#39;&gt;
*C:&#92;Windows&#92;System32&gt;_*
&lt;iframe frameborder=&quot;no&quot; border=&quot;0&quot; marg</summary>
      
    
    
    
    <category term="玩转系统" scheme="https://blog.admincmd.xyz/categories/%E7%8E%A9%E8%BD%AC%E7%B3%BB%E7%BB%9F/"/>
    
    
    <category term="tags" scheme="https://blog.admincmd.xyz/tags/tags/"/>
    
    <category term="windows" scheme="https://blog.admincmd.xyz/tags/windows/"/>
    
    <category term="胡改" scheme="https://blog.admincmd.xyz/tags/%E8%83%A1%E6%94%B9/"/>
    
  </entry>
  
  <entry>
    <title>一文敲定 WOL 网络唤醒</title>
    <link href="https://blog.admincmd.xyz/post/87f37593e5d1/index.html"/>
    <id>https://blog.admincmd.xyz/post/87f37593e5d1/index.html</id>
    <published>2025-04-09T13:49:25.000Z</published>
    <updated>2025-07-28T03:57:07.856Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content='本文详解局域网唤醒（WoL）配置全流程，涵盖BIOS设置、网卡电源管理、系统休眠模式调整等关键步骤，提供硬件支持检测方法和常见问题解决方案。适合具备计算机基础操作能力的用户，指导如何通过有线网络实现关机状态远程唤醒，并解析快速启动对WoL的影响及跨网络唤醒的实现思路。'><div class="note default simple"><p>Wol -&gt; Wake On Lan ，局域网唤醒</p></div><div class="note warning modern"><p>阅读本文需要有一定的知识储备和使用经验</p></div><div class="note warning modern"><p>这功能 <em><strong>只能</strong></em> 在 <em><strong>局域网</strong></em> 里用，原因是依赖 MAC 地址</p></div><div class="note danger modern"><p>进电脑 BIOS 设置需要有一定能力，乱改设置把电脑开不了机了和 UP 没啥事</p></div><div class="note info modern"><p>本文介绍的是 Wake On <strong>Lan</strong> &lt;- 划重点，是局域网，要看 WAN 的，请看<a href="#%E6%9C%80%E5%A5%BD%E7%9A%84%E6%96%B9%E6%B3%95">3 其他问题.2 最好的方法</a></p></div><p>Wol<a href="#@%E6%B3%A8%E8%A7%A3">^1</a>是一种网络标准，允许通过网络消息启动关机状态的计算机，俗称远程开机<del>局域网</del>。</p><h2 id="前提条件"><a href="#前提条件" class="headerlink" title="前提条件"></a>前提条件</h2><ul><li>主板支持：首先，你的电脑要支持远程开机<del>没有硬件功能软件再好都没用</del>，一般来讲，电脑支持 PCIe 2.2 标准（其实这个标准很早就推行了<del>我们这不知道那一年的 PCI 网卡都支持</del>）</li><li>保持供电：<del>没电你用毛电脑</del>。</li><li>网卡支持：你的电脑网卡要与路由器<strong>有线</strong>连接。无线也行，但需要支持 WoWLAN 的补充标准<del>（可以加钱解决一切问题 -&gt; 换网卡）</del>。<div class="note warning no-icon flat"><p>注：有的老\差网卡可能不支持远程开机，具体方法除了查阅说明书外，也可在关机状态下将网线插上去，看看插在 路由器、交换机 上的状态灯会不会亮起，通常有网络包时，电脑网卡的状态指示灯也会闪一下。（不一定，也可能没有设置关机时开启此设备）</p></div></li></ul><h2 id="配置步骤"><a href="#配置步骤" class="headerlink" title="配置步骤"></a>配置步骤</h2><h3 id="启用幻数据包支持"><a href="#启用幻数据包支持" class="headerlink" title="启用幻数据包支持"></a>启用幻数据包支持</h3><h4 id="在-BIOS、EFI-固件中配置"><a href="#在-BIOS、EFI-固件中配置" class="headerlink" title="在 BIOS、EFI 固件中配置"></a>在 BIOS、EFI 固件中配置</h4><p>在开机时准确按下进入<code>BIOS Setup</code>的键，包括但不限于<code>F2</code>、<code>DEL</code>等等进入 BIOS 设置菜单<br>找到与下列短语有关的配置：</p><ul><li><code>remote wake-up</code></li><li><code>wake on WAN</code></li><li><code>resume by LAN</code></li><li><code>resume on LAN</code></li><li><code>wake up on LAN</code></li><li><code>power on by LAN</code></li><li><code>power up by LAN</code></li><li><code>resume by PCIe</code></li><li><code>resume on PCIe</code></li><li><code>wake up on PCIe</code></li><li><code>power on by PCIe</code></li><li><code>power up by PCIe</code></li><li><code>唤醒设置</code></li><li><code>幻数据包</code></li></ul><p>等等，总之和 <code>wake</code>了<code>WAN</code>、<code>LAN</code>这些词，也可能在<code>PCIe</code>之类的菜单里出现</p><div class="note info no-icon flat"><p>BIOS 中不一定存在和网络唤醒有关的设置，但新电脑通常都会有相关设置</p><p>列如用来举例的这台电脑，BIOS 里和网络有关的东西一点没有，但它的板载网卡确实支持网络唤醒。</p></div><h4 id="在系统中配置"><a href="#在系统中配置" class="headerlink" title="在系统中配置"></a>在系统中配置</h4><div class="note warning modern"><p>无论魏晋，在前面配置了，在这里也要配置</p></div><p>进入操作系统，在开始中搜索<code>devmgmt.msc</code>，打开设备管理器（其实右键 Win 菜单也有个设备管理器，但照顾一下Win7的用户）</p><ol><li>找到 <mark class="hl-label blue">网络适配器</mark> ，然后找到你的网卡（譬如<code>Realtek PCle GbE Family Controller</code>、<code>Qualcomm Atheros AR8151 PCI-E Gigabit Ethernet Controller (NDIS 6.30)</code>）</li><li>双击打开设备属性，找到 <mark class="hl-label blue">电源管理</mark>  ，勾选 <mark class="hl-label blue">允许系统关闭此设备以节约电源</mark> 、<mark class="hl-label blue">允许此设备唤醒计算机</mark> 。</li><li>至于下面这个 <mark class="hl-label blue">只允许幻数据包唤醒计算机</mark>  可勾可不勾<br>如果勾了，那么只有特定的 Wol 网络帧才能唤醒计算机；如果不勾，则只要有与该网口有关的网络通讯，都会唤醒计算机（不与该网口有关的不会唤醒，所以不需要担心网络上搞个广播电脑自己开了）<br>如果不勾，可能本来没想打开的设备会莫名其妙打开<del>也不知道咋回事</del>，可以勾上（犹在公共场合，可以防止骚扰）<br>一般还是建议勾上。</li><li>切换到 <mark class="hl-label blue">高级</mark>  选项卡，将属性 <code>关机网络唤醒</code>、<code>魔术封包唤醒</code><del>什么奇怪翻译</del>、<code>Wake on magic packet</code> 之类名称的值设置为 <code>开启</code>、<code>Enabled</code>（有则做，无则无）</li><li>应用后退出</li></ol><h4 id="唤醒设备"><a href="#唤醒设备" class="headerlink" title="唤醒设备"></a>唤醒设备</h4><p>这一步是为了检查你的网卡是否可以唤醒</p><p>命令提示符运行</p><figure class="highlight bat"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">powercfg -devicequery wake_armed</span><br></pre></td></tr></table></figure><pre><code>C:\Users\Administrator\Downloads&gt;powercfg -devicequery wake_armedQualcomm Atheros AR8151 PCI-E Gigabit Ethernet Controller (NDIS 6.30)Infineon AN983B PCI Based Fast Ethernet AdapterC:\Users\Administrator\Downloads&gt;_</code></pre><p>这里可以看到只有电脑上的 2 个网卡设备被允许唤醒计算机</p><h4 id="电源设置"><a href="#电源设置" class="headerlink" title="电源设置"></a>电源设置</h4><p>没错，这个也要配置</p><p>对于 <code>用户</code> 来讲。PC有以下几个状态</p><ul><li>关</li><li>睡眠</li><li>开</li></ul><p>但其实还挺复杂，光关机就有 2 个状态</p><p>描述后的部分是重新写的，因为 <a href="https://learn.microsoft.com/zh-cn/windows/win32/power/system-power-states"><strong>原文</strong></a> 实在看不懂</p><p>参见下表</p><table><thead><tr><th align="center">状态</th><th align="center">ACPI 状态</th><th align="center">描述</th></tr></thead><tbody><tr><td align="center">正在运行<code>Working</code></td><td align="center">S0 G0</td><td align="center">系统完全可用。 未使用的硬件组件可以通过进入较低的电源状态来节省电源。</td></tr><tr><td align="center">新 式 待 机<code>Modern Standby</code><del>睡眠</del></td><td align="center">S0 低功耗</td><td align="center">某些 SoC 系统支持称为 新式待机 的低功耗空闲状态。在此状态下，系统可以非常快速地从低功耗状态切换到大功率状态，以响应硬件和网络事件。支持新式待机的系统不使用 S1-S3。<del>原文如此</del></td></tr><tr><td align="center">睡眠<code>Sleep</code></td><td align="center">S1 S2 S3</td><td align="center">系统似乎已关闭。 S1-S3 状态消耗的电力量小于 S0，S4以上。 S3 消耗的功率小于 S2，S2 消耗的功率于 S1。 系统通常支持这三种状态之一，而不是全部三种状态。在 S1-S3 状态的状态中，将刷新易失性内存以保持系统状态。 某些组件保持电源，以便计算机可以从键盘、LAN 或 USB 设备的输入中唤醒。在桌面上使用的混合睡眠是系统使用具有 S1-S3休眠文件的地方。 休眠文件保存系统状态，以防系统在睡眠时断电。注意： 支持新式待机的 SoC 系统不使用 S1-S3。<del>就是睡眠，其中S3态最常见</del></td></tr><tr><td align="center">休眠<code>Hibernate</code></td><td align="center">S4</td><td align="center">系统似乎已关闭。 能耗降低到最低水平。 系统将易失性内存的内容保存到休眠文件以保留系统状态。 某些组件保持电源，以便计算机可以从键盘、LAN 或 USB 设备的输入中唤醒。 如果工作上下文存储在非易失性媒体上，则可以还原它。快速启动 是在创建休眠文件之前注销用户的位置。 这允许较小的休眠文件，更适合具有较少存储功能的系统。<del>系统将内存的内容保存到休眠文件中，然后把休眠文件丢掉系统根目录里，然后关闭电脑。原文说还要给某些设备如 USB 供电，以便快速打开电脑，至少我到现在也没见过实现这个功能的电脑，此外，这个状态电脑是可以 G3 的 （都关机了肯定可以呀）</del></td></tr><tr><td align="center">软关机<code>Soft off</code> <del>关机</del></td><td align="center">S5 G2</td><td align="center">系统似乎已关闭。 此状态由完全关闭和启动周期组成。<del>就是平常你点 关机 后的状态</del></td></tr><tr><td align="center">机 械 关 闭<code>Mechanical off</code> <del>完全关机</del></td><td align="center">G3</td><td align="center">系统完全关闭，无需电源。 系统仅在完全重新启动后返回到工作状态。<del>系统完全断开电源，除时钟电池及相关模块保持供电外，不消耗电力</del></td></tr></tbody></table><!-- *快速启动* 是在创建休眠文件之前注销用户。，更适合存储功能较少的系统。| --><p>从 Windows 8.1 开始至今（Windows 11），（在可以的情况下）系统将 <strong>快速启动（S4）</strong>作为默认的<strong>关机</strong>方式。而在这种关机状态下，是 <em><strong>不支持</strong></em> 网络唤醒的。</p><div class="note info modern"><p><strong>休眠</strong> 和 <strong>快速启动</strong>的原理是一样的，但应用场景不同，写入休眠文件的内容也不同</p><p>就一般来讲，<strong>休眠</strong>会把几乎所有内存都写入内存文件，而<strong>快速启动</strong>只会写入譬如驱动程序、服务的内存进内存文件。</p></div><p>这也是大多数 WoL 相关的教程（包括本文）都会教你 关闭<em>快速启动</em>的原因：</p><div class="note info modern"><p>如果你的电脑不支持<strong>休眠</strong>，那也肯定不支持<strong>快速启动</strong>。</p></div><ol><li>打开 <code>控制面板</code></li><li><mark class="hl-label blue">硬件和声音</mark>  -> <mark class="hl-label blue">电源选项</mark>  -> <mark class="hl-label blue">更改电源按钮的功能</mark> </li><li>在下面的 <mark class="hl-label blue">关机设置</mark>  里 取消勾选 <mark class="hl-label blue">启用快速启动(推荐)</mark> <br>（如果是禁用状态无法设置，先点击 <mark class="hl-label blue">更改当前不可用的设置</mark>  进行授权）</li></ol><h3 id="成果-验证"><a href="#成果-验证" class="headerlink" title="成果 &amp; 验证"></a>成果 &amp; 验证</h3><p>如果没有其他问题，将配置好的电脑正常关机；再通过别的电脑之类的，就可以尝试远程启动这台电脑了。</p><p>可以用 <code>WOl.exe</code>、<code>wakeonlan</code></p><p>DOWN:<a href="https://www.gammadyne.com/wol.exe">https://www.gammadyne.com/wol.exe</a></p><p>具体用法（最简）</p><p>首先需要知道客户端计算机网卡的物理地址，即 MAC 地址<br>除了去客户端看以外，在知道 IP 的情况下，也可在同一网络环境下，打开客户端计算机，连上网，通过 <code>arp -a</code> 命令查询 ARP 表知晓等等等等等</p><p>然后在服务端上运行 </p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 其中 50-E5-49-58-91-8A 是欲唤醒段网卡的 MAC 地址，应按需更改</span></span><br><span class="line">wol 50-E5-49-58-91-8A</span><br><span class="line"></span><br><span class="line"><span class="comment"># 语法如下</span></span><br><span class="line">wol [MAC]</span><br></pre></td></tr></table></figure><p>如果程序正常工作，应该会打印以下内容。</p><pre><code>WOL.exe 2.2 - Wake-On-LAN Utility - www.Gammadyne.comCopyright (C) 2000-2024 by Greg Wittmeyer - All Rights ReservedWake-up packet sent successfully.</code></pre><p>这个时候客户端应该应声启动了。</p><div class="note no-icon flat"><p>注：在电脑关机时，网卡不完全关机的情况下会在 <strong>2 层 数据链路层</strong>上工作，该层在<strong>3 层 网络层</strong>之下（参见下面 <em>WAN 广域网唤醒</em>的模型表），所以这个时候网卡没有 IP 地址，监听网络帧，所以只能使用 MAC 地址进行唤醒。</p></div><h2 id="其他问题"><a href="#其他问题" class="headerlink" title="其他问题"></a>其他问题</h2><h3 id="断电恢复"><a href="#断电恢复" class="headerlink" title="断电恢复"></a>断电恢复</h3><p>因为 WoL 的原理是<em>关电脑不关网卡</em>：虽然关机了，但网卡仍然处于<em>低功耗工作</em>状态。 如果意外断电，所有硬件——都得离线关闭<del>这不废话吗，除了时钟芯片有电池，别的没电有毛用</del>。</p><p>系统离线后再恢复供电，在重新上电后，大概可以自动恢复到断电之前的状态；<br>有些就不行了，因此网络唤醒就失效了。</p><ul><li>BIOS 里是否支持 <code>Restore AC Power Loss blue</code>（<mark class="hl-label blue">断电恢复</mark>  &#x2F; <mark class="hl-label blue">来电开机</mark>  &#x2F; <mark class="hl-label blue">意外断电后来电状态</mark> ），设置为 <code>label Last State blue</code>（<mark class="hl-label blue">之前的状态</mark>  &#x2F; <mark class="hl-label blue">断电前的最后状态</mark> ）</li></ul><h3 id="WAN-广域网唤醒"><a href="#WAN-广域网唤醒" class="headerlink" title="WAN 广域网唤醒"></a>WAN 广域网唤醒</h3><p>Wol包实际上是一个网络帧</p><p>例如唤醒 MAC 为 <code>50-E5-49-58-91-8A</code> 的帧大概长这样：</p><pre><code> Offset  | 0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F  |00000000 | FF FF FF FF FF FF 50 E5  49 58 91 8A 50 E5 49 58 |00000010 | 91 8A 50 E5 49 58 91 8A  50 E5 49 58 91 8A 50 E5 |00000020 | 49 58 91 8A 50 E5 49 58  91 8A 50 E5 49 58 91 8A |00000030 | 50 E5 49 58 91 8A 50 E5  49 58 91 8A 50 E5 49 58 |00000040 | 91 8A 50 E5 49 58 91 8A  50 E5 49 58 91 8A 50 E5 |00000050 | 49 58 91 8A 50 E5 49 58  91 8A 50 E5 49 58 91 8A |00000060 | 50 E5 49 58 91 8A                                |</code></pre><p>结构就是 (6*ff + 16*MAC)<br><del>也是奇怪的东西，喊一声，然后在网上喊16遍你的名字，试图叫醒你。</del>，只去不回，不需要客户端应答。</p><p>附表：传输协议层级</p><table><thead><tr><th align="center">TCP&#x2F;IP 五层模型</th><th align="center">常用协议</th></tr></thead><tbody><tr><td align="center">5 应用层</td><td align="center">HTTP(S)、Telnet、FTP、SMTP、DNS、RDP</td></tr><tr><td align="center">4 传输层</td><td align="center">TCP、UDP</td></tr><tr><td align="center">3 网络层</td><td align="center">IP、ICMP、RIP、IGMP、OSPF</td></tr><tr><td align="center">2 数据链路层</td><td align="center">以太网、令牌环、PPP、PPTP、L2TP、ARP、ATMP</td></tr><tr><td align="center">1 物理层</td><td align="center">网线、光纤、电磁波</td></tr></tbody></table><p>WoL 在 <strong>2 层 数据链路层</strong> 传播。<br>从上表可以看到，由于无关具体的传输协议（TCP &#x2F; UDP），只要网卡识别到特定的 <code>广播帧</code> 就会唤醒电脑。</p><p>如果使用内网穿透，从 WAN 直接发送 WoL 请求，就必须依靠路由器的<strong>ARP 绑定</strong>、<strong>端口映射</strong> 来精确地把数据包塞到设备嘴里。<del>麻烦不说，还不稳定</del></p><p>那咋办呢，弄端口映射还挺麻烦，所以可以换一种方法，<br>网络唤醒在局域网中是管用的，所以可以用 <strong>SSH</strong> 连接到内网设备上（NAS、服务器）的终端，用发包程序（如上文的<code>WOL.exe</code>）把幻包发出去，这样就实现了 Wake On Wan，也不需要弄静态 ARP。</p><h3 id="电源状态"><a href="#电源状态" class="headerlink" title="电源状态"></a>电源状态</h3><p>可以在命令提示符运行下命令查看支持电源状态：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">powercfg /a</span><br></pre></td></tr></table></figure><p>可以看到这台电脑只有 S3 睡眠</p><pre><code>C:\Users\Administrator&gt;cmd /k powercfg /a此系统上有以下睡眠状态:    待机 (S3)此系统上没有以下睡眠状态:    待机 (S1)        系统固件不支持此待机状态。    待机 (S2)        系统固件不支持此待机状态。    休眠无法检索详细理由说明此系统上的睡眠状态不可用。C:\Users\Administrator&gt;_</code></pre><h2 id="但这台电脑的睡眠已经坏掉了-ε-┬┬﹏┬┬-3，byd直接睡死"><a href="#但这台电脑的睡眠已经坏掉了-ε-┬┬﹏┬┬-3，byd直接睡死" class="headerlink" title="但这台电脑的睡眠已经坏掉了 ε(┬┬﹏┬┬)3，byd直接睡死"></a><del>但这台电脑的睡眠已经坏掉了 ε(┬┬﹏┬┬)3，byd直接睡死</del></h2><h2 id="注解"><a href="#注解" class="headerlink" title="@注解"></a>@注解</h2><ol><li>WoL 技术由 AMD 和惠普共同开发，于 1995 年作为标准提出。此后，该标准很快被 IBM、Intel 和其他公司采用。</li></ol>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;本文详解局域网唤醒（WoL）配置全流程，涵盖BIOS设置、网卡电源管理、系统休眠模式调整等关键步骤，提供硬件支持检测方法和常见问题解决方案。适合具备计算机基础操作能力的用户，指导如何通过有线网络实现关机状态远程唤</summary>
      
    
    
    
    <category term="网络" scheme="https://blog.admincmd.xyz/categories/%E7%BD%91%E7%BB%9C/"/>
    
    <category term="远程开机" scheme="https://blog.admincmd.xyz/categories/%E7%BD%91%E7%BB%9C/%E8%BF%9C%E7%A8%8B%E5%BC%80%E6%9C%BA/"/>
    
    
    <category term="Windows" scheme="https://blog.admincmd.xyz/tags/Windows/"/>
    
    <category term="网络" scheme="https://blog.admincmd.xyz/tags/%E7%BD%91%E7%BB%9C/"/>
    
    <category term="自动化" scheme="https://blog.admincmd.xyz/tags/%E8%87%AA%E5%8A%A8%E5%8C%96/"/>
    
  </entry>
  
  <entry>
    <title>解除 锐捷云课堂 学生端 的远控和 USB 禁用</title>
    <link href="https://blog.admincmd.xyz/post/f483a3a94892/index.html"/>
    <id>https://blog.admincmd.xyz/post/f483a3a94892/index.html</id>
    <published>2024-12-11T13:56:56.000Z</published>
    <updated>2026-02-08T09:39:14.907Z</updated>
    
    <content type="html"><![CDATA[<!-- <meta name='description' content='本文讲如何在使用锐捷云课堂中解除USB禁用'> --><!-- <div class="note default simple"></div> --><div class="note warning modern"><p>注意下老师</p></div><div class="note warning modern"><p>来自 UP 的警告：被老师发现后果自负，我不承担任何责任 <del>我们老师看到玩植物大战叼尸都不管</del></p></div><div class="note danger modern"><p>可能被老师发现并没收U盘,并被████████████</p></div><div class="note info modern"><p>肥肠抱歉，由于不可抗力因素，本文配不了图片<!--，所以在网上找的，侵删--></p></div><h2 id="开头"><a href="#开头" class="headerlink" title="开头"></a>开头</h2><p>上初中了，微机室的电脑换了，换了个叫锐捷云的系统<del>居然是虚拟机：½Ýüꁛ❿ꃩꋥ&#x3D;Š®訲髾￠</del><br>不过研究了一下，发现客户端上有 4 个U口，但是不认u盘，推测应该是管理系统整的，因为有个<em>您的 USB 已被禁用</em>的消息<br>于是就开始反查，原来极域把密码丢到注册表里，于是就在注册表里开始找 RCC 这个关键词，</p><p>然后查到了，配置文件夹的位置：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C:\Windows\RCC-Guest-Tool\</span><br></pre></td></tr></table></figure><p>这个文件夹里有相当一部分是INI配置文件<br>这个文件夹里确实有密码，但是已经是哈希值了，无法直接写进去关闭程序。如果想逆向算出来，拜托，我只是想解一个USB……<br>不过这些配置都没有保护，直接让系统已普通权限保存，没有保护，直接便是一个普普通通的小文件，<br>所以大胆一试，把配置目录扔到桌面上，之后发现不起作用，可能是被缓存了。<br>解决方案是让程序重新加载配置文件，但程序为了防止某些有技术含量的学生终止进程，对这个操作拒绝访问<br>重启也不行，重启了文件就被重置了<br>不过，我们发现他的程序居然是在当前用户工作的，所以注销账户便可以结束进程从而达到重新加载配置文件的目的</p><p>2026.2.8 添加<br>现在已经初三，没有微机课，所以只在此提一下<br>据说该密码是以MD5进行处理，且并未添加加盐处理，所以随便弄符合MD5的值改写进去，应该可以改写密码。</p><p><del>把进程权限守得死死的，真不怕有人偷配置走了</del></p><p>除此以外，网上还说密码是锐捷的官网域名，测试了下，不行</p><p>网络上也有说配置文件位于<code>C:\Program Files\RCC-Guest-Tool\</code>的，可能因版本而异</p><p>这个方法可以解：</p><ul><li>USB禁用</li><li>老师远控</li></ul><p>不过解不了：</p><ul><li>上网问题</li></ul><h2 id="实际操作"><a href="#实际操作" class="headerlink" title="实际操作"></a>实际操作</h2><p>1.首先打开<code>此电脑</code>，打到<code>C 盘</code></p><p>2.双击打开<code>Windows</code>目录</p><p>3.找到<code>RCC-Guest-Tool</code>文件夹</p><div class="note simple"><p>貌似会有两个 RCC 开头的，建议全部按第 4 步处理</p></div><p>4.把文件夹删掉，要权限就继续</p><p>5.按<code>Ctrl</code> + <code>Alt</code> + <code>Del</code> 呼出安全选项，然后<code>注销</code></p><p>6.登录账户</p><hr><p>以下是别的东西：</p><ul><li>为啥学生端和教师端是捆绑的，配置文件一删窜出了个教师端</li><li>今天是2025年5月26日，我们微机室老师看到了这篇文章，没有作任何意见。</li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;!-- &lt;meta name=&#39;description&#39; content=&#39;本文讲如何在使用锐捷云课堂中解除USB禁用&#39;&gt; --&gt;
&lt;!-- &lt;div class=&quot;note default simple&quot;&gt;&lt;/div&gt; --&gt;

&lt;div class=&quot;note warnin</summary>
      
    
    
    
    <category term="整改微机室" scheme="https://blog.admincmd.xyz/categories/%E6%95%B4%E6%94%B9%E5%BE%AE%E6%9C%BA%E5%AE%A4/"/>
    
    
    <category term="Windows" scheme="https://blog.admincmd.xyz/tags/Windows/"/>
    
    <category term="锐捷云课堂" scheme="https://blog.admincmd.xyz/tags/%E9%94%90%E6%8D%B7%E4%BA%91%E8%AF%BE%E5%A0%82/"/>
    
  </entry>
  
  <entry>
    <title>使用 PowerShell 管理 WindowsApps</title>
    <link href="https://blog.admincmd.xyz/post/19bd6d8ad52f/index.html"/>
    <id>https://blog.admincmd.xyz/post/19bd6d8ad52f/index.html</id>
    <published>2024-10-07T00:38:21.000Z</published>
    <updated>2025-06-08T13:36:37.106Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content='该页讲述了使用power shell删除、添加UWP应用，并说明了如何用两种方式查看应用程序包名称。（欢迎进站访问|´・ω・) ノ）'><div class="note warning modern"><p>注意备份，尤其是列表。</p></div><div class="note danger modern"><p>不正确的操作可能造成应用缺失或无法使用,<br>因本文中的内容错误使用造成的系统损坏，一切后果与UP无关。</p></div><h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>前言</p><h2 id="操作"><a href="#操作" class="headerlink" title="操作"></a>操作</h2><p>使用管理员打开 PowerShell，具体打开方式？</p><details class="toggle" ><summary class="toggle-button" style="">启动PowerShell</summary><div class="toggle-content"><p>右键Windows菜单，单击搜索，然后输入<code>powershell</code></p><p>然后在结果第一行的 Windows Power Shell 右键，选择<code>以管理员身份运行</code><br>点<code>是</code>,就好了。</p></div></details><h3 id="找应用程序包"><a href="#找应用程序包" class="headerlink" title="找应用程序包"></a>找应用程序包</h3><h4 id="第一种方法（知晓应用程序包发布名）"><a href="#第一种方法（知晓应用程序包发布名）" class="headerlink" title="第一种方法（知晓应用程序包发布名）"></a>第一种方法（知晓应用程序包发布名）</h4><p>首先要确定你要删什么应用，这里以 Windows 上自带的 Xbox 为例，</p><p>粘贴运行下面的这个东东，</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Get-AppxPackage</span> | <span class="built_in">Select</span> Name, PackageFullName</span><br><span class="line"><span class="comment"># 该命令输出了系统上已安装的 Windows 应用</span></span><br></pre></td></tr></table></figure><p>然后系统就会输出类似下面的东西</p><p>这里输出了系统里所有 UWP 应用，即可以删除、修改的</p><pre><code>  Name                                        PackageFullName  ----                                        ---------------  1527c705-839a-4832-9118-54d4Bd6a0c89        1527c705-839a-4832-9118-54d4Bd6a0c89_10.0.19041.1023_neutral_neutral_cw5...  E2A4F912-2574-4A75-9BB0-0D023378592B        E2A4F912-2574-4A75-9BB0-0D023378592B_10.0.19041.1023_neutral_neutral_cw5...  F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE        F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE_10.0.19041.1023_neutral_neutral_cw5...  Microsoft.AAD.BrokerPlugin                  Microsoft.AAD.BrokerPlugin_1000.19041.1023.0_neutral_neutral_cw5n1h2txyewy  Microsoft.AccountsControl                   Microsoft.AccountsControl_10.0.19041.1023_neutral__cw5n1h2txyewy  Microsoft.AsyncTextService                  Microsoft.AsyncTextService_10.0.19041.1023_neutral__8wekyb3d8bbwe  Microsoft.BioEnrollment                     Microsoft.BioEnrollment_10.0.19041.1023_neutral__cw5n1h2txyewy  Microsoft.CredDialogHost                    Microsoft.CredDialogHost_10.0.19041.1023_neutral__cw5n1h2txyewy  Microsoft.ECApp                             Microsoft.ECApp_10.0.19041.1023_neutral__8wekyb3d8bbwe  Microsoft.LockApp                           Microsoft.LockApp_10.0.19041.1023_neutral__cw5n1h2txyewy  ...</code></pre><p><code>Name</code>指应用程序包的发布名，<code>PackageFullName</code>指应用程序包名。</p><p>然后我们找 Xbox 有关的程序包，嫌麻烦可以右键标题栏,选择<code>编辑(&amp;E) &gt; 查找(&amp;F)</code>打开查找框</p><p>这样可以查找到这些程序包</p><pre><code>  Microsoft.Xbox.TCUI                         Microsoft.Xbox.TCUI_1.24.10001.0_x64__8wekyb3d8bbwe                          Microsoft.XboxGameOverlay                   Microsoft.XboxGameOverlay_1.54.4001.0_x64__8wekyb3d8bbwe                     Microsoft.XboxSpeechToTextOverlay           Microsoft.XboxSpeechToTextOverlay_1.21.13002.0_x64__8wekyb3d8bbwe   Microsoft.XboxApp                           Microsoft.XboxApp_48.89.25001.0_x64__8wekyb3d8bbwe       Microsoft.XboxGamingOverlay                 Microsoft.XboxGamingOverlay_5.822.10271.0_x64__8wekyb3d8bbwe                 Microsoft.XboxIdentityProvider              Microsoft.XboxIdentityProvider_12.95.3001.0_x64__8wekyb3d8bbwe </code></pre><h4 id="第二种方法（知晓应用程序）"><a href="#第二种方法（知晓应用程序）" class="headerlink" title="第二种方法（知晓应用程序）"></a>第二种方法（知晓应用程序）</h4><p>打开你要删的 UWP 应用，此处使用<code>电影和电视</code>举例</p><p>右键任务栏，打开<code>任务管理器</code>,拉开详细信息，找到<code>电影和电视</code>(你要删什么应用就找什么)<br> <img src="https://unpkg.com/admincmd-blog-img-0@1.0.4/19bd6d8ad52f_0.png" alt="19bd6d8ad52f_0"></p><p>展开<code>电影和电视</code>(你要删什么应用就找什么)，选中<code>电影和电视</code>(你要删什么应用就找什么)，选择<code>属性</code><br>找到<code>位置</code>,选中位于<code>C:\Program Files\WindowsApps\</code>后的所有文本，复制下来，这就是应用程序包名</p><h3 id="删除应用"><a href="#删除应用" class="headerlink" title="删除应用"></a>删除应用</h3><h4 id="删除指定应用"><a href="#删除指定应用" class="headerlink" title="删除指定应用"></a>删除指定应用</h4><p>删除包的语法长这样：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Remove-AppxPackage</span> [<span class="type">PackageFullName</span>]</span><br></pre></td></tr></table></figure><p><code>[PackageFullName]</code>指应用程序包名称</p><div class="note info modern"><p>此处允许使用通配符。</p></div><div class="tabs" id="test1"><ul class="nav-tabs"><button type="button" class="tab  active" data-href="test1-1">删除指定程序包</button><button type="button" class="tab " data-href="test1-2">删除指定通配符程序包</button></ul><div class="tab-contents"><div class="tab-item-content active" id="test1-1"><p>例如我们要删除名为 <code>Microsoft.Xbox.TCUI_1.24.10001.</code> 的程序包。<br>则传入以下命令</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Remove-AppxPackage</span> Microsoft.Xbox.TCUI_1.<span class="number">24.10001</span>.</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="test1-2"><p>或者说我们想把下面这些与<code>Xbox</code>有关程序包统统删除</p><pre><code>  Microsoft.Xbox.TCUI                         Microsoft.Xbox.TCUI_1.24.10001.0_x64__8wekyb3d8bbwe                          Microsoft.XboxGameOverlay                   Microsoft.XboxGameOverlay_1.54.4001.0_x64__8wekyb3d8bbwe                     Microsoft.XboxSpeechToTextOverlay           Microsoft.XboxSpeechToTextOverlay_1.21.13002.0_x64__8wekyb3d8bbwe   Microsoft.XboxApp                           Microsoft.XboxApp_48.89.25001.0_x64__8wekyb3d8bbwe       Microsoft.XboxGamingOverlay                 Microsoft.XboxGamingOverlay_5.822.10271.0_x64__8wekyb3d8bbwe                 Microsoft.XboxIdentityProvider              Microsoft.XboxIdentityProvider_12.95.3001.0_x64__8wekyb3d8bbwe </code></pre><p>这些程序包内名称内均有<code>Xbox</code>关键词，可以使用通配符，需要传入以下命令</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Remove-AppxPackage</span> *Xbox*</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div><h4 id="删除所有-UWP-应用"><a href="#删除所有-UWP-应用" class="headerlink" title="删除所有 UWP 应用"></a>删除所有 UWP 应用</h4><div class="note info modern"><p>注意：某些 UWP 无法正常删除，列如 Windows 自带的杀毒，这种东西需要别的方法来移除。</p></div><div class="tabs" id="test3"><ul class="nav-tabs"><button type="button" class="tab  active" data-href="test3-1">卸载当前用户所有 UWP 应用</button><button type="button" class="tab " data-href="test3-2">卸载指定用户所有 UWP 应用</button><button type="button" class="tab " data-href="test3-3">卸载所有账户所有 UWP 应用</button></ul><div class="tab-contents"><div class="tab-item-content active" id="test3-1"><p>若想要删除当前用户的 UWP 应用，则传入以下命令</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Get-AppXPackage</span> | <span class="built_in">Remove-AppxPackage</span></span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="test3-2"><p>在Powershell中输入以下命令，回车即可卸载指定用户<code>[username]</code>的所有 UWP 应用。</p><figure class="highlight powershell"><figcaption><span>无法直接运行</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Get-AppXPackage</span> <span class="literal">-User</span> [<span class="type">username</span>] | <span class="built_in">Remove-AppxPackage</span></span><br></pre></td></tr></table></figure><p>其中<code>[username]</code>为指定的用户。</p><p>列如要删除用户名为 <code>AdminCmd</code>的用户所有的 UWP 应用，可以传入下命令</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Get-AppXPackage</span> <span class="literal">-User</span> AdminCmd | <span class="built_in">Remove-AppxPackage</span></span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="test3-3"><p>传入下命令，可以卸载所有账户的所有 UWP 应用</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Get-AppxPackage</span> <span class="literal">-AllUsers</span> | <span class="built_in">Remove-AppxPackage</span></span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="fas fa-arrow-up"></i></button></div></div><h3 id="安装应用"><a href="#安装应用" class="headerlink" title="安装应用"></a>安装应用</h3><div class="note info modern"><p>此处仅演示系统原生应用安装，其他途径不在此处收录。</p></div><h4 id="安装所有默认-UWP-应用"><a href="#安装所有默认-UWP-应用" class="headerlink" title="安装所有默认 UWP 应用"></a>安装所有默认 UWP 应用</h4><p>传入下代码即可<br><code>[-AllUsers]</code> 是可选的，该参数决定是否应用与所有账户，若删除此参数，则为本账户执行此操作。</p><figure class="highlight powershell"><figcaption><span>无法直接运行</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Get-AppxPackage</span> [-<span class="type">AllUsers</span>] | <span class="keyword">foreach</span> &#123;<span class="built_in">Add-AppxPackage</span> <span class="literal">-register</span> <span class="string">&quot;<span class="variable">$</span>(<span class="variable">$_</span>.InstallLocation)\appxmanifest.xml&quot;</span> <span class="literal">-DisableDevelopmentMode</span>&#125;</span><br></pre></td></tr></table></figure><h4 id="安装指定应用"><a href="#安装指定应用" class="headerlink" title="安装指定应用"></a>安装指定应用</h4><p>首先你要知道你要装的应用程序包名称，具体请见 2.1</p><p>请将 <code>[PackageFullName]</code> 替换为应用程序包名</p><figure class="highlight powershell"><figcaption><span>无法直接运行</span></figcaption><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Add-AppxPackage</span> <span class="literal">-register</span> <span class="string">&quot;C:\Program Files\WindowsApps\[PackageFullName]\appxmanifest.xml&quot;</span> <span class="literal">-DisableDevelopmentMode</span></span><br></pre></td></tr></table></figure><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><h3 id="参考资料"><a href="#参考资料" class="headerlink" title="参考资料"></a>参考资料</h3><ul><li><a href="https://blog.admincmd.xyz/url.html?url=https://learn.microsoft.com/en-us/powershell/module/appx/remove-appxpackage?view=windowsserver2022-ps">PackageManager Class</a></li><li><a href="https://blog.admincmd.xyz/url.html?url=https://learn.microsoft.com/en-us/powershell/module/appx/add-appxpackage?view=windowsserver2022-ps">Add-AppxPackage</a></li><li><a href="https://blog.admincmd.xyz/url.html?url=https://learn.microsoft.com/en-us/powershell/module/appx/remove-appxpackage?view=windowsserver2022-ps">Remove-AppxPackage</a></li><li>Get-Help</li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;该页讲述了使用power shell删除、添加UWP应用，并说明了如何用两种方式查看应用程序包名称。（欢迎进站访问|´・ω・) ノ）&#39;&gt;

&lt;div class=&quot;note warning modern&quot;&gt;&lt;p&gt;</summary>
      
    
    
    
    <category term="Windows" scheme="https://blog.admincmd.xyz/categories/Windows/"/>
    
    
    <category term="Power Shell" scheme="https://blog.admincmd.xyz/tags/Power-Shell/"/>
    
    <category term="WindowsApps" scheme="https://blog.admincmd.xyz/tags/WindowsApps/"/>
    
    <category term="Windows" scheme="https://blog.admincmd.xyz/tags/Windows/"/>
    
  </entry>
  
  <entry>
    <title>瞎搞向 - 让一个文件夹里有多个“同名”文件（水）</title>
    <link href="https://blog.admincmd.xyz/post/1b5d7e144ce7/index.html"/>
    <id>https://blog.admincmd.xyz/post/1b5d7e144ce7/index.html</id>
    <published>2024-09-20T12:42:00.000Z</published>
    <updated>2025-06-08T13:36:37.116Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content='（水）本文介绍了如何让一个文件夹里有多个“同名”文件。（欢迎进站访问|´・ω・) ノ）'>（水）<h2 id="预览图"><a href="#预览图" class="headerlink" title="预览图"></a>预览图</h2><p><img src="https://s2.loli.net/2024/09/20/yho8A4PB6pSDFMW.png" alt="1.png"></p><h2 id="教程"><a href="#教程" class="headerlink" title="教程"></a>教程</h2><h3 id="创建文件"><a href="#创建文件" class="headerlink" title="创建文件"></a>创建文件</h3><p>首先，我们往一个文件夹丢几个文件<br>，这里以a.ini 、b.ini、c.ini替代</p><p>然后，新建一个文本文件，名叫 desktop.ini</p><h3 id="修改文件"><a href="#修改文件" class="headerlink" title="修改文件"></a>修改文件</h3><p>写入以下内容</p><figure class="highlight ini"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">[LocalizedFileNames]</span></span><br><span class="line"><span class="attr">a.ini</span>=d</span><br><span class="line"><span class="attr">b.ini</span>=d</span><br><span class="line"><span class="attr">c.ini</span>=d </span><br></pre></td></tr></table></figure><p>语法</p><figure class="highlight ini"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">[LocalizedFileNames]</span></span><br><span class="line"><span class="section">[原始文件名]</span>=<span class="section">[显示文件名]</span></span><br><span class="line"><span class="comment">;</span></span><br></pre></td></tr></table></figure><p>注：原始文件名需包括扩展名，显示文件名不需<br>且无法修改显示文件名扩展名</p><p>搞完后保存退出</p><p>重启下资源管理器，或者电脑重启下，或者注销都行</p><p>就可以看到效果了</p><h2 id="附注"><a href="#附注" class="headerlink" title="附注"></a>附注</h2><p>这个只是更改你看到的，原始文件名不变</p><p>例如：使用命令提示符执行<code>dir</code>可以看到</p><figure class="highlight txt"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"> E:\一个有几个相同文件名的文件的文件夹 的目录</span><br><span class="line"></span><br><span class="line">2024/08/21  09:24    &lt;DIR&gt;          .</span><br><span class="line">2024/08/21  09:24    &lt;DIR&gt;          ..</span><br><span class="line">2024/08/21  09:20                 7 a.ini</span><br><span class="line">2024/08/21  09:21                 7 b.ini</span><br><span class="line">2024/08/21  09:21                 7 c.ini</span><br><span class="line">               3 个文件             21 字节</span><br><span class="line">               2 个目录 1,661,417,754,624 可用字节</span><br><span class="line"></span><br><span class="line">E:\一个有几个相同文件名的文件的文件夹&gt;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;（水）本文介绍了如何让一个文件夹里有多个“同名”文件。（欢迎进站访问|´・ω・) ノ）&#39;&gt;
（水）

&lt;h2 id=&quot;预览图&quot;&gt;&lt;a href=&quot;#预览图&quot; class=&quot;headerlink&quot; title=&quot;预</summary>
      
    
    
    
    <category term="玩转系统" scheme="https://blog.admincmd.xyz/categories/%E7%8E%A9%E8%BD%AC%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="文件" scheme="https://blog.admincmd.xyz/categories/%E7%8E%A9%E8%BD%AC%E7%B3%BB%E7%BB%9F/%E6%96%87%E4%BB%B6/"/>
    
    
    <category term="Windows" scheme="https://blog.admincmd.xyz/tags/Windows/"/>
    
    <category term="文件" scheme="https://blog.admincmd.xyz/tags/%E6%96%87%E4%BB%B6/"/>
    
    <category term="DESKTOP.INI" scheme="https://blog.admincmd.xyz/tags/DESKTOP-INI/"/>
    
  </entry>
  
  <entry>
    <title>修改 BOOTX64.EFI、BOOTMGR.EFI 所使用 BCD 文件位置</title>
    <link href="https://blog.admincmd.xyz/post/46e8c3d8a231/index.html"/>
    <id>https://blog.admincmd.xyz/post/46e8c3d8a231/index.html</id>
    <published>2024-09-17T02:24:00.000Z</published>
    <updated>2025-06-08T13:36:37.112Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content='本文介绍如何修改 EFI 启动的 Windows 10 系统的 BOOTX64.EFI、BOOTMGR.EFI 所使用 BCD 文件位置（欢迎进站访问|´・ω・) ノ）'><h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>最近在搞 u 盘，想把不同的启动文件引到不同的 BCD 上，最开始以为引导的 BCD 是相对的<br><del>BOOTX64.EFI 位于 \EFI\BOOS\ So,BCD 在 \EFI\BOOS\MICOSOSFT\BCD</del><br>倒腾了半天，没倒腾出来</p><p>后来又折腾几个小时，才搞出来</p><p>又是翻这看那<br>然后就有了这个东西</p><div class="note default simple"><p>[EFI_DISK] 特指 EFI 引导卷</p></div><div class="note warning modern"><p>请注意，修改时两个字符中间请相隔一个空位(不是空格)<br>例如：<br>       Offset | 0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F  |<br>     000047B0 | 5C 00 45 00 46 00 49 00  5C 00 4D 00 69 00 63 00 | \ E F I \ M i c </p></div><div class="note warning modern"><p>魔改有风险，请注意备——份——！</p></div><div class="note danger modern"><p>因未提前备份造成计算机无法启动或出现问题，一切后果与我无关。</p></div><div class="note info modern"><p>这篇文章仅对 Windows 的 EFI 引导文件有效</p><p>文章中的文件请在附件包中下载</p></div><hr><h2 id="BOOTX64-EFI"><a href="#BOOTX64-EFI" class="headerlink" title="BOOTX64.EFI"></a>BOOTX64.EFI</h2><p>该部分通过了测试，但不同计算机的环境、参数可能不同，请谨慎修改。</p><h3 id="编辑-BCD-位置文件夹"><a href="#编辑-BCD-位置文件夹" class="headerlink" title="编辑 BCD 位置文件夹"></a>编辑 BCD 位置文件夹</h3><p>关于 EFI ，这里这修改 [EFI_DISK]\efi\boot\bootx64.efi<br><strong>即计算机 BIOS 引导的文件</strong></p><p>打开 WinHex，然后打开你的 bootx64.efi</p><p>之后转到偏移量 <code>000047B0</code> 的位置</p><p>到右边的文本编辑区，你可以看到下面的内容</p><pre><code>  Offset | 0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F  |000047B0 | 5C 00 45 00 46 00 49 00  5C 00 4D 00 69 00 63 00 | \ E F I \ M i c 000047C0 | 72 00 6F 00 73 00 6F 00  66 00 73 00 5C 00 42 00 | r o s o f s \ B 000047D0 | 6F 00 6F 00 31 00 00 00  00 00 00 00 00 00 00 00 | o o 1           </code></pre><p>上面的东西有一些小修改，所以不同，只要大致长一样即可</p><p><img src="https://s2.loli.net/2024/09/17/ZliKSF7NPyEGj5h.png" alt="0001.png"></p><p>可以修改的内容<br> \Microsoft\ </p><div class="note info modern"><p>修改此内容你需要同时修改 \EFI\boot\ [语言] \bootx64.efi.mui</p><p>否则只会留下 MUI 消息表，连 HTML 都出不来<br>就像这样:<br><img src="https://s2.loli.net/2024/09/17/Q6eoTzYxHStuR17.png" alt="0002.png"></p></div><p>，至于 \BOOT\ 这个就可以随便改，只要保证不超过 000047D0 的范围就行了</p><h3 id="修改-BCD-名称"><a href="#修改-BCD-名称" class="headerlink" title="修改 BCD 名称"></a>修改 BCD 名称</h3><p>转到偏移量 <code>00004A50</code> 的位置</p><p>到右边的文本编辑区，你可以看到下面的内容</p><pre><code>  Offset | 0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F  |00004A50 | 5C 00 42 00 43 00 44 00  00 00 00 00 00 00 00 00 | \ B C D</code></pre><p>同理，可以修改文件名，不超过 <code>00004A5F</code> 即可</p><h2 id="BOOTMGR-EFI"><a href="#BOOTMGR-EFI" class="headerlink" title="BOOTMGR.EFI"></a>BOOTMGR.EFI</h2><div class="note warning modern"><p>这个部分因为某些原因，尚未通过测试(不加载)，请谨慎修改。</p></div><p>##+<br> 修改 BCD 位置<br>这里这修改 [EFI_DISK]\bootmgr.efi</p><h3 id="修改-BCD-路径"><a href="#修改-BCD-路径" class="headerlink" title="修改 BCD 路径"></a>修改 BCD 路径</h3><p>打开 WinHex，然后打开你的 bootmgr.efi</p><p>之后转到偏移量 <code>00001E50</code> 的位置</p><p>到右边的文本编辑区，你可以看到下面的内容</p><pre><code>  Offset | 0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F  |00001E50 | 5C 00 45 00 46 00 49 00  5C 00 4D 00 69 00 63 00 | \ E F I \ M i c 00001E60 | 72 00 6F 00 73 00 6F 00  66 00 73 00 5C 00 42 00 | r o s o f s \ B 00001E70 | 6F 00 6F 00 31 00 00 00  00 00 00 00 00 00 00 00 | o o 1           </code></pre><p>上面的东西有一些小修改，所以不同，只要大致长一样即可</p><p>可以修改的内容</p><p> \BOOT\ 这个就可以随便改，只要保证不超过 00001E70 的范围就行了</p><h3 id="修改-BCD-名称-1"><a href="#修改-BCD-名称-1" class="headerlink" title="修改 BCD 名称"></a>修改 BCD 名称</h3><p>转到偏移量 <code>000020F0</code> 的位置</p><p>到右边的文本编辑区，你可以看到下面的内容</p><pre><code>  Offset | 0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F  |000020F0 | 5C 00 42 00 43 00 44 00  00 00 00 00 00 00 00 00 | \ B C D</code></pre><p>同理，可以修改文件名，不超过 <code>000020FF</code> 即可</p><h2 id="备注"><a href="#备注" class="headerlink" title="备注"></a>备注</h2><div class="note info modern"><p>BCD 需要禁止数字签名认证，否则无法正常启动，此外需要关闭 安全启动 </p></div><p>[^需要验证]</p><p>关于 WinHex<br><a href="https://blog.admincmd.xyz/zy/app/#WinHex">https://blog.admincmd.xyz/zy/app/#WinHex</a></p><p>本文附件<br><a href="https://blog.admincmd.xyz/url.html?url=https://admincmd.lanzout.com/izwqR2af2ncf">https://blog.admincmd.xyz/url.html?url=https://admincmd.lanzout.com/izwqR2af2ncf</a></p><p>这是什么：？</p><p><img src="https://s2.loli.net/2024/09/17/xu78QlUowCdJY1X.png" alt="002.png"></p>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;本文介绍如何修改 EFI 启动的 Windows 10 系统的 BOOTX64.EFI、BOOTMGR.EFI 所使用 BCD 文件位置（欢迎进站访问|´・ω・) ノ）&#39;&gt;

&lt;h2 id=&quot;前言&quot;&gt;&lt;a hre</summary>
      
    
    
    
    <category term="魔改" scheme="https://blog.admincmd.xyz/categories/%E9%AD%94%E6%94%B9/"/>
    
    <category term="Windows 引导" scheme="https://blog.admincmd.xyz/categories/%E9%AD%94%E6%94%B9/Windows-%E5%BC%95%E5%AF%BC/"/>
    
    
    <category term="Windows" scheme="https://blog.admincmd.xyz/tags/Windows/"/>
    
    <category term="Windows 引导" scheme="https://blog.admincmd.xyz/tags/Windows-%E5%BC%95%E5%AF%BC/"/>
    
    <category term="BCD" scheme="https://blog.admincmd.xyz/tags/BCD/"/>
    
    <category term="BOOTX64.EFI" scheme="https://blog.admincmd.xyz/tags/BOOTX64-EFI/"/>
    
    <category term="BOOTMGR.EFI" scheme="https://blog.admincmd.xyz/tags/BOOTMGR-EFI/"/>
    
    <category term="魔改" scheme="https://blog.admincmd.xyz/tags/%E9%AD%94%E6%94%B9/"/>
    
    <category term="EFI" scheme="https://blog.admincmd.xyz/tags/EFI/"/>
    
    <category term="UEFI" scheme="https://blog.admincmd.xyz/tags/UEFI/"/>
    
  </entry>
  
  <entry>
    <title>使用虚拟机对实体机硬盘安装操作系统</title>
    <link href="https://blog.admincmd.xyz/post/cedfd1c6ff27/index.html"/>
    <id>https://blog.admincmd.xyz/post/cedfd1c6ff27/index.html</id>
    <published>2024-06-10T06:59:05.000Z</published>
    <updated>2025-06-08T13:36:37.108Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content='本文将介绍如何使用 VMware Workstation 虚拟机安装 Windows 操作系统。并将其应用到实体机上。（欢迎进站访问|´・ω・) ノ）'><div class="note primary modern"><p>本文需使用以下材料</p><ul><li><p>Windows 安装镜像</p></li><li><p>VMware 虚拟机软件</p></li><li><p>目标计算机（可以无显卡，必须有网卡 <strong>无线网卡</strong> ）</p></li><li><p>安装计算机（正常，可以跑虚拟机 4逻辑处理器 8GB RAM）</p></li><li><p>一张可以装系统盘的硬盘</p></li><li><p>一定动手能力</p></li></ul></div><div class="note danger modern"><p>如果您使用此方法，请务必备份好数据，操作后无法恢复，</p><p>未备份数据，造成硬盘内文件丢失，作者不承担任何责任。</p><p>按照下列方法，如您继续，则默认您同意我们的声明。</p></div><div class="note info modern"><p>建议你先将文章过一遍，这样可以更清楚的知道自己下一步要干什么。</p><p>注意：本文配图与代码框内有出入，请以围栏代码框内为准</p></div><h2 id="前絮"><a href="#前絮" class="headerlink" title="前絮"></a>前絮</h2><p>这台电脑是我家里的一台老电脑，已经很久没有使用了，但是我想在上面安个 Windows Server，整个服务器使</p><p>这台电脑没有任何东东，除了一张PCI网卡，没有任何其他的东西（对，TM 连显卡都没有），所以装系统肯定会有很多麻烦<del>根本就没法装系统</del>。</p><h2 id="准备工作"><a href="#准备工作" class="headerlink" title="准备工作"></a>准备工作</h2><p>首先,我们要找台可以跑虚拟机的电脑<br>然后找张固态盘（机械盘也行<del>，不过——太——慢——了</del>）,拉来装系统<br>然后在准备一个系统镜像,可以从 <a class="btn-beautify " href="/zy/www/"   title="这个页面"><span>这个页面</span></a> 下载。<br>其他东西应该不用说吧</p><h2 id="安装系统"><a href="#安装系统" class="headerlink" title="安装系统"></a>安装系统</h2><p>如果想直接在磁盘上进行分区并应用镜像,其参考本文章</p><!-- 如果想使用虚拟磁盘进行启动,请参考 <https://admincmd.xyz/post/Setup-system-com-no-vhd> --><p>首先我们需要准备一个虚拟机，这里使用 VMware Workstation</p><!-- <div class="note warning simple"><p> –&gt;</p><!-- 如果想要用其他的虚拟机软件，请转到 <https://admincmd.xyz/post/Setup-system-com-no-vhd> 参考虚拟磁盘安装方法 --><!-- </div> --><h3 id="创建虚拟机"><a href="#创建虚拟机" class="headerlink" title="创建虚拟机"></a>创建虚拟机</h3><p>装 VMware<br>打开 VMware Workstation，选择新建虚拟机<br>上面这几步应该不用说吧？</p><ol><li><p>到<code>安装操作系统</code>这一步,请在<code>安装程序光盘映像文件</code>这一栏选择你选下载的系统镜像</p></li><li><p>客户端系统自己选你的版本</p></li><li><p>名称和位置随意</p></li><li><p>固件类型,一定要注意,以你要安装的电脑相符</p><div class="note warning simple"><p>一定要注意,以你要安装的电脑相符,否则操作系统 99% 无法启动</p><p>一般来讲,uefi 的电脑,其安全启动默认开启,所以是 uefi 的电脑最好把安全启动也给勾上,免得出一些奇怪的问题</p></div><div class="note simple"><p>如果你的电脑比较老,比如是 11 年的,那基本确定是 BIOS ,如果电脑很新,比如是 21 年的,那基本确定是 UEFI </p><p>不过如果你不知道,自己去问度娘,或者去bing找一下</p></div></li><li><p>处理器,以你跑虚拟机的电脑为准<br>内存,以你跑虚拟机的电脑为准<br>网络适配器,默认就行<br>I&#x2F;O 控制器,默认就行<br>虚拟磁盘类型,<del>按你准备的盘插口决定</del>其实无所谓,选个 SATA 就行</p></li><li><p>磁盘请选<code>使用物理磁盘</code><strong>啊这一步挺重要的</strong></p></li><li><p>设备<br>这一步有点复杂</p></li></ol><div class="hide-block"><button type="button" class="hide-button" style="">选择方法    </button><div class="hide-content"><p>很简单,一个一个猜去</p></div></div><details class="toggle" ><summary class="toggle-button" style="">......</summary><div class="toggle-content"><ol><li><p>按下 Win + R 打开运行框</p></li><li><p>输入<code>diskmgmt.msc</code>回车打开磁盘管理</p></li><li><p>然后你会看到你的磁盘,左边有一栏,写这<code>磁盘 0</code>等等等等,找到你要安装的盘,记下它的编号,比如<code>磁盘 2</code></p></li><li><p>然后回到 VMware Workstation,依照上面的例子,你的磁盘就是<code>PhysicalDrive 2</code></p></li></ol><p><code>磁盘 3</code> 就是 <code>PhysicalDrive 3</code> 等等</p><p>没有就退出重进</p><ol start="5"><li>使用情况就选<code>整个磁盘</code>即可</li></ol></div></details><p>其他的不用管，下一步完成即可</p><h3 id="安装系统-1"><a href="#安装系统-1" class="headerlink" title="安装系统"></a>安装系统</h3><ol><li>启动虚拟机,进入安装程序</li></ol><div class="note info no-icon flat"><p>一般来说,vmware 都会自动识别系统镜像并加载无人值守程序,所以这一步应该不用你操心</p></div><h3 id="MBR、GPT-分区表转换"><a href="#MBR、GPT-分区表转换" class="headerlink" title="MBR、GPT 分区表转换"></a>MBR、GPT 分区表转换</h3><p>安装过程出现以下情况,请按照提示操作:</p><details class="toggle" ><summary class="toggle-button" style="">说什么 GPT 分区表，什么 mbr 分区表不适用什么 EFI 啥的</summary><div class="toggle-content"><p>以下操作位于虚拟机。</p><div class="note warning modern"><p>进行该操作之前,请先备份好数据,因为操作后无法恢复</p><p>若要将磁盘转换为 GPT&#x2F;MBR 磁盘,请在转换磁盘前备份数据，因为会删除所有分区或卷。</p></div><ol><li>按下 <code>Shift + F10</code> 打开命令提示符</li><li>输入<code>DISKPART</code>回车进入磁盘管理命令行</li><li>输入<code>list disk</code>查看磁盘列表</li><li>输入<code>select disk 0</code>选择第一个磁盘</li><li>输入<code>clean</code>清除所有分区</li></ol><div class="note info modern"><p>若要删除受保护的磁盘（如类型为“系统”与“保留”），则需要在 Delete Partition 命令后添加 Override 参数<br>如果需要一次性将磁盘上所有分区删除，请使用 Clean 命令</p><p>例如直接使用<code>Delete Partition</code>命令删除则会返回<br>    虚拟磁盘服务错误:<br>    如果不设置强制保护参数设置，则无法删除受保护的分区</p><p>而使用<code>Delete Partition Override</code>命令删除则会返回<br>    DISKPART 成功删除了所选分区</p></div><p>如果是 mbr 分区表,不适用 efi<br>请参考</p><ol start="6"><li>输入<code>convert gpt</code>转换为 gpt 分区表</li></ol><p>如果是 GPT 分区表,说什么不适用 legacy,请参考</p><ol start="6"><li>输入<code>convert mbr</code>转换为 mbr 分区表</li></ol><p>然后<br>7. 输入<code>exit</code>退出命令行</p></div></details><p>下一步即可</p><p>然后等就可以了！</p><p>系统装完了？ou，那就下一步吧</p><h3 id="配置系统"><a href="#配置系统" class="headerlink" title="配置系统"></a>配置系统</h3><p>Windows Server 需要你在初次启动时设置内置管理员密码，对密码安全性要求很高，</p><p>本次装系统是在一台没有任何外围设备的电脑上，所以需要在装系统后在虚拟机里配置好系统。</p><p>首次打开系统，系统会要求你设置内置管理员账户的密码，</p><h2 id="物理机调配"><a href="#物理机调配" class="headerlink" title="物理机调配"></a>物理机调配</h2><p>把跑虚拟机的电脑关机</p><p>将你插上去的那张盘拔下来，咋装的咋拔<br>然后将盘插回之前的那台电脑</p><p>开机<br>要检测你的电脑是否已进入系统，有一个很简单的方法</p><p>把网线插入到电脑，看看指示灯是否亮起</p><div class="note warning modern"><p>请确保网卡驱动已正确安装！网线已正确插入<br>虚拟机内好了不代表现在就好</p></div><h3 id="如果没好……"><a href="#如果没好……" class="headerlink" title="如果没好……"></a>如果没好……</h3><p>将电脑关机</p><p>把除系统盘以外的盘全部断开数据线连接<br>好，再开机</p><p>把网线插入到电脑，看看指示灯是否亮起</p><div class="note warning modern"><p>请确保网卡驱动已正确安装！网线已正确插入</p></div><div class="hide-block"><button type="button" class="hide-button" style="">如果还没好    </button><div class="hide-content"><p>把电脑砸了！</p><p>找张显卡吧……</p></div></div><p>网卡指示灯亮起就OK了<br>你现在可以用 IP 地址或者计算机名（可以提前将计算机改成<code>SERVER</code>之类的）进行访问了。</p><p>好了，就这样了。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;本文将介绍如何使用 VMware Workstation 虚拟机安装 Windows 操作系统。并将其应用到实体机上。（欢迎进站访问|´・ω・) ノ）&#39;&gt;

&lt;div class=&quot;note primary mo</summary>
      
    
    
    
    <category term="教程" scheme="https://blog.admincmd.xyz/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="Windows 安装" scheme="https://blog.admincmd.xyz/categories/%E6%95%99%E7%A8%8B/Windows-%E5%AE%89%E8%A3%85/"/>
    
    
    <category term="Windows" scheme="https://blog.admincmd.xyz/tags/Windows/"/>
    
    <category term="Windows 安装" scheme="https://blog.admincmd.xyz/tags/Windows-%E5%AE%89%E8%A3%85/"/>
    
    <category term="VMware" scheme="https://blog.admincmd.xyz/tags/VMware/"/>
    
    <category term="虚拟机" scheme="https://blog.admincmd.xyz/tags/%E8%99%9A%E6%8B%9F%E6%9C%BA/"/>
    
    <category term="安装系统" scheme="https://blog.admincmd.xyz/tags/%E5%AE%89%E8%A3%85%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="物理机" scheme="https://blog.admincmd.xyz/tags/%E7%89%A9%E7%90%86%E6%9C%BA/"/>
    
  </entry>
  
  <entry>
    <title>如何使用 Windows PE 安装操作系统(BIOS)</title>
    <link href="https://blog.admincmd.xyz/post/ca2d8449e095/index.html"/>
    <id>https://blog.admincmd.xyz/post/ca2d8449e095/index.html</id>
    <published>2024-05-20T15:53:45.000Z</published>
    <updated>2025-06-08T13:36:37.119Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content='本文将介绍在 Legacy 启动方式下，如何使用 Windows PE (Windows 预安装环境) 安装 Windows 操作系统,包括分区、添加引导文件（欢迎进站访问|´・ω・) ノ）'><p>本文中所使用的系统为 Windows PE(Windows 预安装环境)，安装系统为 Windows 10</p><div class="note warning modern"><p>本文中所适用的启动方式为 BIOS (Legacy)</p></div><div class="note success modern"><p>本文中所使用安装系统可以为 Windows 7 、Windows 8 、Windows 8.1 、Windows 10  即 wim \ esd 映像的Windows操作系统。(需要支持 Legacy,但大部分操作系统都支持)</p></div><p>!!! error “不支持的操作系统”<br>    该教程不适用于 Windows 11</p><div class="note success modern"><p>建议你先将文章过一遍，这样可以更清楚的知道自己下一步要干什么。</p><p>注意：本文大部配图与代码框内有出入，请以围栏代码框内为准</p></div><h2 id="分配磁盘"><a href="#分配磁盘" class="headerlink" title="分配磁盘"></a>分配磁盘</h2><p>使用 CMD 运行以下命令</p><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">DiskPart</span><br><span class="line">List Disk</span><br></pre></td></tr></table></figure><div class="note default simple"><p>如果你已经完成此操作(或已经分区)，请移步右侧目录‘安装系统’</p><p>如果你的磁盘已经准备好了，(空白的)就请移步右侧目录‘创建分区’</p></div><p>使用 DISKPART 查看当前计算机的磁盘</p><p>运行后大概是这样</p><pre><code>  磁盘 ###  状态           大小     可用     Dyn  Gpt  --------  -------------  -------  -------  ---  ---  磁盘 0    联机              465 GB      0 B</code></pre><p>确定好需要的磁盘，输入命令，将其设为选中状态</p><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">rem Select Disk &lt;磁盘编号&gt;</span></span><br><span class="line"><span class="comment"></span></span><br><span class="line"><span class="comment">rem 例如如果你需要选择磁盘 0 则命令如下</span></span><br><span class="line"></span><br><span class="line">Select Disk <span class="number">0</span></span><br><span class="line"></span><br></pre></td></tr></table></figure><p><img src="https://s2.loli.net/2024/06/23/mgvUPYh6VMtuWbx.png" alt="QQ20240619210151.png"></p><h3 id="删除分区"><a href="#删除分区" class="headerlink" title="删除分区"></a>删除分区</h3><p>如果你的磁盘上有其他分区，想删除它们，请参照以下步骤：</p><p>首先列出磁盘上已有分区</p><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">List Partition</span><br></pre></td></tr></table></figure><p>运行后大概就是这样</p><pre><code>  分区 ###       类型              大小     偏移量  -------------  ----------------  -------  -------  分区      1    主要                 415 GB  1024 KB  分区      2    主要                  49 GB   415 GB  分区      3    主要                 512 MB   465 GB</code></pre><p>选择你需要进行操作并删除的分区<br>依照以下命令可以多次执行</p><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">Select Partition &lt;分区编号&gt;</span><br><span class="line">Delete Partition</span><br><span class="line"><span class="comment"></span></span><br><span class="line"><span class="comment">REM 如果你需要选择分区 1 并删除，则命令如下</span></span><br><span class="line"></span><br><span class="line">Select Partition <span class="number">1</span></span><br><span class="line">Delete Partition</span><br></pre></td></tr></table></figure><p>命令执行成功应是<code>DISKPART 成功删除了所选分区</code></p><div class="note info modern"><p>若要删除受保护的磁盘（如类型为“系统”与“保留”），则需要在 Delete Partition 命令后添加 Override 参数<br>如果需要一次性将磁盘上所有分区删除，请使用 Clean 命令</p><p>例如直接使用<code>Delete Partition</code>命令删除则会返回<br>    虚拟磁盘服务错误:<br>    如果不设置强制保护参数设置，则无法删除受保护的分区</p><p>而使用<code>Delete Partition Override</code>命令删除则会返回<br>    DISKPART 成功删除了所选分区</p></div><p>最后再次使用<code>List Partitio</code> 即可看到<code>这个磁盘上没有显示的分区</code></p><hr><p>如果你的磁盘已经准备好了，(空白的)就往下看创建分区</p><h3 id="创建分区"><a href="#创建分区" class="headerlink" title="创建分区"></a>创建分区</h3><p>首先通过这个命令转化一下磁盘分区表</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Convert MBR</span><br><span class="line">REM Convert MBR 将磁盘转换为 MBR</span><br></pre></td></tr></table></figure><div class="note info modern"><p>在 MBR 磁盘分区表上，只允许最多四个主分区或三主分区加一个扩展分区，最多支持 2Tb 的硬盘</p><p>如果将 Size&#x3D;&lt;分区大小&gt; 这个参数去掉，则会默认将该磁盘的所有可用的空间创建为一个分区</p></div><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">Create Partition Primary Size=&lt;分区大小&gt;</span><br><span class="line">Convert MBR</span><br><span class="line">REM Convert MBR 将磁盘转换为 MBR</span><br><span class="line">REM 分区大小以 MiB 为单位，（微软常常写成‘MB、GB’，事实上MB、GB和MiB、GiB是两种不同的单位）</span><br><span class="line">REM 1GiB=1024MiB 1GB=1000MB 以此类推，所以系统所报告的硬盘大小与硬盘标称大小通常要小。</span><br><span class="line"></span><br><span class="line">REM 例如我需要创建一个大小为 50GiB 的主分区作为系统盘，9GiB 的主分区作为其它盘则命令如下</span><br><span class="line"></span><br><span class="line">Create Partition Primary Size=51200</span><br><span class="line">Create Partition Primary Size=9216</span><br></pre></td></tr></table></figure><p><img src="https://s2.loli.net/2024/06/23/PLvy5iSRh3jNYGu.png" alt="QQ20240619210234.png"></p><h3 id="格式化分区"><a href="#格式化分区" class="headerlink" title="格式化分区"></a>格式化分区</h3><p>使用以下命令格式化主分区</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">REM List Partition</span><br><span class="line">REM Select Partition &lt;分区编号&gt;</span><br><span class="line">REM Format fs=NTFS Quick</span><br><span class="line">REM Assign Letter=&lt;盘符&gt;</span><br><span class="line"></span><br><span class="line">REM 例如需要格式化第 1 个分区，文件系统为 NTFS 并快速格式化，盘符为 C，则命令如下(将盘 1 作为系统安装盘)</span><br><span class="line"></span><br><span class="line">List Partition</span><br><span class="line">Select Partition 1</span><br><span class="line">Format fs=NTFS Quick</span><br><span class="line">Assign Letter=C</span><br><span class="line">Active</span><br><span class="line"></span><br></pre></td></tr></table></figure><p><img src="https://s2.loli.net/2024/06/23/phNKtHLiz1emgWE.png" alt="QQ20240619210747.png"><br>看着都完成，没出错，就可以按<code>exit</code>退出DISKPART了</p><h2 id="安装系统"><a href="#安装系统" class="headerlink" title="安装系统"></a>安装系统</h2><p>首先确定你要安装啥系统</p><div class="note info modern"><p>如果不知道原版系统从哪下，到<a class="btn-beautify " href="/zy/www/"   title="这个页面"><span>这个页面</span></a>找到原版系统资源分区找个站去下。</p><p>Wim 安装文件位于 \Sources\install.wim</p></div><h3 id="查看版本"><a href="#查看版本" class="headerlink" title="查看版本"></a>查看版本</h3><p>输入以下命令查看映像版本</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">REM DISM.exe /Get-WimInfo /WimFile:&lt;WIM/ESD 路径&gt;</span><br><span class="line"></span><br><span class="line">REM 假如我存放在 E 盘下的 Sources 文件夹并命名为 install.wim，则命令如下</span><br><span class="line"></span><br><span class="line">DISM.exe /Get-WimInfo /WimFile:E:\Sources\install.wim</span><br></pre></td></tr></table></figure><p>返回出类似这个就算成功</p><pre><code>部署映像服务和管理工具版本: 10.0.19041.844映像的详细信息: K:\WSTC\Windows10x64.wim索引: 1名称: Windows 10 教育版描述: Windows 10 教育版大小: 16,715,582,809 个字节索引: 2名称: Windows 10 企业版描述: Windows 10 企业版大小: 16,715,736,804 个字节索引: 3名称: Windows 10 专业版描述: Windows 10 专业版大小: 16,735,296,644 个字节索引: 4名称: Windows 10 专业教育版描述: Windows 10 专业教育版大小: 16,715,521,227 个字节索引: 5名称: Windows 10 专业工作站版描述: Windows 10 专业工作站版大小: 16,715,552,018 个字节操作成功完成。</code></pre><h3 id="安装映像"><a href="#安装映像" class="headerlink" title="安装映像"></a>安装映像</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">REM DISM.exe /Apply-Image /ImageFile:&lt;WIM/ESD 路径&gt; /Index:&lt;映像版本&gt; /ApplyDir:&lt;安装盘符&gt;:\</span><br><span class="line"></span><br><span class="line">REM 假如我存放在 E 盘下的 Sources 文件夹并命名为 install.wim，需要安装第一个版本，并安装在 C 盘，则命令如下</span><br><span class="line"></span><br><span class="line">DISM.exe /Apply-Image /ImageFile:E:\Sources\install.wim /Index:1 /ApplyDir:C:\</span><br></pre></td></tr></table></figure><p>由于刚才我们已经为系统盘设置盘符，所以 <code>&lt;安装盘符&gt;</code> 可以不用改<br>&lt;映像版本&gt; 请根据 ‘查看版本’那一步的索引进行选择</p><p>看到下面这个东东就说明正在部署</p><pre><code>正在应用镜像[                     0.0%                     ]</code></pre><p>等个几分钟，看到<code>操作成功完成</code>就行了</p><h2 id="安装引导"><a href="#安装引导" class="headerlink" title="安装引导"></a>安装引导</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Bootrec.exe /FixMbr</span><br><span class="line">BCDBoot C:\Windows /l zh-cn</span><br></pre></td></tr></table></figure><p>把上面命令跑一下就可以重启了</p><div class="note info modern"><p>重启后进入 OOBE 开箱体验阶段</p></div><p><img src="https://s2.loli.net/2024/06/23/mb8qRaZf4o6t3s5.png" alt="QQ20240619211645.png"></p>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;本文将介绍在 Legacy 启动方式下，如何使用 Windows PE (Windows 预安装环境) 安装 Windows 操作系统,包括分区、添加引导文件（欢迎进站访问|´・ω・) ノ）&#39;&gt;

&lt;p&gt;本文中所</summary>
      
    
    
    
    <category term="教程" scheme="https://blog.admincmd.xyz/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="Windows 安装" scheme="https://blog.admincmd.xyz/categories/%E6%95%99%E7%A8%8B/Windows-%E5%AE%89%E8%A3%85/"/>
    
    
    <category term="Windows" scheme="https://blog.admincmd.xyz/tags/Windows/"/>
    
    <category term="Windows 欲安装环境" scheme="https://blog.admincmd.xyz/tags/Windows-%E6%AC%B2%E5%AE%89%E8%A3%85%E7%8E%AF%E5%A2%83/"/>
    
    <category term="安装 Windows" scheme="https://blog.admincmd.xyz/tags/%E5%AE%89%E8%A3%85-Windows/"/>
    
    <category term="BIOS" scheme="https://blog.admincmd.xyz/tags/BIOS/"/>
    
    <category term="Legacy" scheme="https://blog.admincmd.xyz/tags/Legacy/"/>
    
  </entry>
  
  <entry>
    <title>如何使用 Windows PE 安装操作系统(EFI/UEFI)</title>
    <link href="https://blog.admincmd.xyz/post/8cf1f32c4af1/index.html"/>
    <id>https://blog.admincmd.xyz/post/8cf1f32c4af1/index.html</id>
    <published>2024-05-20T15:53:45.000Z</published>
    <updated>2025-06-08T13:36:37.120Z</updated>
    
    <content type="html"><![CDATA[<meta name='description' content='本文将介绍在 EFI 启动方式下，如何使用 Windows PE (Windows 预安装环境) 安装操作系统（欢迎进站访问|´・ω・) ノ）'><h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>本文中所使用的系统为 Windows PE(Windows 预安装环境)，安装系统为 Windows 10</p><div class="note warning modern"><p>本文中所适用的启动方式为 BIOS (Legacy)</p></div><div class="note success modern"><p>本文中所使用安装系统可以为 Windows 8 、Windows 8.1 、Windows 10、WIndows 11  即 wim \ esd 映像的Windows操作系统。(不过需要支持 EFI)</p></div><div class="note danger modern"><p>不支持的操作系统<br>该教程不适用于 Windows 7 及以下的操作系统</p></div><div class="note warning modern"><p>尽管 Windows 7 支持 EFI 环境，但是鉴于其安装复杂，因此这里标不支持<br><del>我装过，关安全启动、关大小核、关这关那，还不能急着打驱动，麻烦，适合装逼，还成功了</del></p></div><div class="note info modern"><p>建议你先将文章过一遍，这样可以更清楚的知道自己下一步要干什么。</p><p>注意：本文大部配图与代码框内有出入，请以围栏代码框内为准</p></div><p>啥时候才有人看到注意的启动方式是 BIOS (Legacy) (错误的)呢？</p><hr><h2 id="分配磁盘"><a href="#分配磁盘" class="headerlink" title="分配磁盘"></a>分配磁盘</h2><p>使用 CMD 运行以下命令</p><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">DiskPart</span><br><span class="line">List Disk</span><br></pre></td></tr></table></figure><div class="note default simple"><p>如果你已经完成此操作(或已经分区)，请移步左侧目录‘安装系统’</p><p>如果你的磁盘已经准备好了，(空白的)就请移步左侧目录‘创建分区’</p></div><p>使用 DISKPART 查看当前计算机的磁盘</p><p>运行后大概是这样</p><pre><code>  磁盘 ###  状态           大小     可用     Dyn  Gpt  --------  -------------  -------  -------  ---  ---  磁盘 0    联机              465 GB      0 B</code></pre><p>确定好需要的磁盘，输入命令，将其设为选中状态</p><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">rem Select Disk &lt;磁盘编号&gt;</span></span><br><span class="line"><span class="comment"></span></span><br><span class="line"><span class="comment">rem 例如如果你需要选择磁盘 0 则命令如下</span></span><br><span class="line"></span><br><span class="line">Select Disk <span class="number">0</span></span><br><span class="line"></span><br></pre></td></tr></table></figure><p><img src="https://s2.loli.net/2024/06/23/mgvUPYh6VMtuWbx.png" alt="QQ20240619210151.png"></p><h3 id="删除分区"><a href="#删除分区" class="headerlink" title="删除分区"></a>删除分区</h3><p>如果你的磁盘上有其他分区，想删除它们，请参照以下步骤：</p><p>首先列出磁盘上已有分区</p><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">List Partition</span><br></pre></td></tr></table></figure><p>运行后大概就是这样</p><pre><code>  分区 ###       类型              大小     偏移量  -------------  ----------------  -------  -------  分区      1    主要                 415 GB  1024 KB  分区      2    主要                  49 GB   415 GB  分区      3    主要                 512 MB   465 GB</code></pre><p>选择你需要进行操作并删除的分区<br>依照以下命令可以多次执行</p><figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">Select Partition &lt;分区编号&gt;</span><br><span class="line">Delete Partition</span><br><span class="line"><span class="comment"></span></span><br><span class="line"><span class="comment">REM 如果你需要选择分区 1 并删除，则命令如下</span></span><br><span class="line"></span><br><span class="line">Select Partition <span class="number">1</span></span><br><span class="line">Delete Partition</span><br></pre></td></tr></table></figure><p>命令执行成功应是<code>DISKPART 成功删除了所选分区</code></p><div class="note info modern"><p>若要删除受保护的磁盘（如类型为“系统”与“保留”），则需要在 Delete Partition 命令后添加 Override 参数<br>如果需要一次性将磁盘上所有分区删除，请使用 Clean 命令</p><p>例如直接使用<code>Delete Partition</code>命令删除则会返回<br>    虚拟磁盘服务错误:<br>    如果不设置强制保护参数设置，则无法删除受保护的分区</p><p>而使用<code>Delete Partition Override</code>命令删除则会返回<br>    DISKPART 成功删除了所选分区</p></div><p>最后再次使用<code>List Partitio</code> 即可看到<code>这个磁盘上没有显示的分区</code></p><hr><p>如果你的磁盘已经准备好了，(空白的)就往下看创建分区</p><h3 id="创建分区"><a href="#创建分区" class="headerlink" title="创建分区"></a>创建分区</h3><p>首先通过这个命令转化一下磁盘分区表</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Convert GPT</span><br><span class="line">REM Convert GPT 将磁盘转换为 GPT</span><br></pre></td></tr></table></figure><p>使用以下命令创建 ESP（EFI）分区 与 MSR（保留分区）</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Create Partition EFI Size=512</span><br><span class="line">Create Partition MSR Size=256</span><br></pre></td></tr></table></figure><div class="note info modern"><p>分区，在 GPT 磁盘上至多创建 128 个磁盘分区。</p><p>如果将 Size&#x3D;&lt;分区大小&gt; 这个参数去掉，则会默认将该磁盘的所有可用的空间创建为一个分区</p></div><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">rem Create Partition Primary Size=&lt;分区大小&gt;</span><br><span class="line"></span><br><span class="line">REM 分区大小以 MiB 为单位，（微软常常写成‘MB、GB’，事实上MB、GB和MiB、GiB是两种不同的单位）</span><br><span class="line">REM 1GiB=1024MiB 1GB=1000MB 以此类推，所以系统所报告的硬盘大小与硬盘标称大小通常要小。</span><br><span class="line"></span><br><span class="line">REM 例如我需要创建一个大小为 50GiB 的主分区作为系统盘，9GiB 的主分区作为其它盘则命令如下</span><br><span class="line"></span><br><span class="line">Create Partition Primary Size=51200</span><br><span class="line">Create Partition Primary Size=9216</span><br></pre></td></tr></table></figure><p>再举个例子：<br><img src="https://s2.loli.net/2024/06/23/PLvy5iSRh3jNYGu.png" alt="QQ20240619210234.png"></p><h3 id="格式化分区"><a href="#格式化分区" class="headerlink" title="格式化分区"></a>格式化分区</h3><p>使用以下命令格式化主分区</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">REM List Partition</span><br><span class="line">REM Select Partition &lt;分区编号&gt;</span><br><span class="line">REM Format fs=NTFS Quick</span><br><span class="line">REM Assign Letter=&lt;盘符&gt;</span><br><span class="line"></span><br><span class="line">REM 例如需要格式化第 2 个分区，文件系统为 NTFS 并快速格式化，盘符为 C，则命令如下(将盘 1 作为系统安装盘)</span><br><span class="line"></span><br><span class="line">List Partition</span><br><span class="line">Select Partition 2</span><br><span class="line">Format fs=NTFS Quick</span><br><span class="line">Assign Letter=C</span><br><span class="line">Active</span><br><span class="line"></span><br></pre></td></tr></table></figure><p><img src="https://s2.loli.net/2024/06/23/phNKtHLiz1emgWE.png" alt="QQ20240619210747.png"><br>与 BIOS 不同的是，EFI 需要格式化 EFI 分区</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">REM List Partition</span><br><span class="line">REM Select Partition &lt;分区编号&gt;</span><br><span class="line">REM Format fs=FAT32 Quick Label=System</span><br><span class="line">REM Assign Letter=Z</span><br><span class="line"></span><br><span class="line">REM 若我 EFI 分区是第 1 个，需要将 EFI 分区格式化为 FAT32，盘符为 Z，则命令如下</span><br><span class="line"></span><br><span class="line">List Partition</span><br><span class="line">Select Partition 1</span><br><span class="line">Format fs=FAT32 Quick Label=System</span><br><span class="line">Assign Letter=Z</span><br></pre></td></tr></table></figure><p>看着都完成，没出错，就可以按<code>exit</code>退出DISKPART了</p><h2 id="安装系统"><a href="#安装系统" class="headerlink" title="安装系统"></a>安装系统</h2><p>首先确定你要安装啥系统</p><div class="note info modern"><p>如果不知道原版系统从哪下，到<a class="btn-beautify " href="/zy/www/"   title="这个页面"><span>这个页面</span></a>找到原版系统资源分区找个站去下。</p><p>Wim 安装文件位于 \Sources\install.wim</p></div><h3 id="查看版本"><a href="#查看版本" class="headerlink" title="查看版本"></a>查看版本</h3><p>输入以下命令查看映像版本</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">REM DISM.exe /Get-WimInfo /WimFile:&lt;WIM/ESD 路径&gt;</span><br><span class="line"></span><br><span class="line">REM 假如我存放在 E 盘下 \Sources\install.wim，则命令如下</span><br><span class="line"></span><br><span class="line">DISM.exe /Get-WimInfo /WimFile:E:\Sources\install.wim</span><br></pre></td></tr></table></figure><p>返回出类似这个就算成功</p><pre><code>部署映像服务和管理工具版本: 10.0.19041.844映像的详细信息: K:\WSTC\Windows10x64.wim索引: 1名称: Windows 10 教育版描述: Windows 10 教育版大小: 16,715,582,809 个字节索引: 2名称: Windows 10 企业版描述: Windows 10 企业版大小: 16,715,736,804 个字节索引: 3名称: Windows 10 专业版描述: Windows 10 专业版大小: 16,735,296,644 个字节索引: 4名称: Windows 10 专业教育版描述: Windows 10 专业教育版大小: 16,715,521,227 个字节索引: 5名称: Windows 10 专业工作站版描述: Windows 10 专业工作站版大小: 16,715,552,018 个字节操作成功完成。</code></pre><h3 id="安装映像"><a href="#安装映像" class="headerlink" title="安装映像"></a>安装映像</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">REM DISM.exe /Apply-Image /ImageFile:&lt;WIM/ESD 路径&gt; /Index:&lt;映像版本&gt; /ApplyDir:&lt;安装盘符&gt;:\</span><br><span class="line"></span><br><span class="line">REM 假如我存放在 E 盘下的 \Sources\install.wim，需要安装第一个版本，并安装在 C 盘，则命令如下</span><br><span class="line"></span><br><span class="line">DISM.exe /Apply-Image /ImageFile:E:\Sources\install.wim /Index:1 /ApplyDir:C:\</span><br></pre></td></tr></table></figure><p>由于刚才我们已经为系统盘设置盘符，所以 <code>&lt;安装盘符&gt;</code> 可以不用改<br>&lt;映像版本&gt; 请根据 ‘查看版本’那一步的索引进行选择</p><p>看到下面这个东东就说明正在应用</p><pre><code>正在应用镜像[                     0.0%                     ]</code></pre><p>等个几分钟，看到<code>操作成功完成</code>就行了</p><h2 id="安装引导"><a href="#安装引导" class="headerlink" title="安装引导"></a>安装引导</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">Bootrec.exe /FixMbr</span><br><span class="line">BCDBoot C:\Windows /l zh-cn</span><br></pre></td></tr></table></figure><pre><code>把上面命令跑一下就可以重启了</code></pre><div class="note info modern"><p>重启后进入 OOBE 开箱体验阶段</p></div><p><img src="https://s2.loli.net/2024/06/23/mb8qRaZf4o6t3s5.png" alt="QQ20240619211645.png"></p>]]></content>
    
    
      
      
    <summary type="html">&lt;meta name=&#39;description&#39; content=&#39;本文将介绍在 EFI 启动方式下，如何使用 Windows PE (Windows 预安装环境) 安装操作系统（欢迎进站访问|´・ω・) ノ）&#39;&gt;

&lt;h2 id=&quot;前言&quot;&gt;&lt;a href=&quot;#前言&quot; class</summary>
      
    
    
    
    <category term="教程" scheme="https://blog.admincmd.xyz/categories/%E6%95%99%E7%A8%8B/"/>
    
    <category term="Windows 安装" scheme="https://blog.admincmd.xyz/categories/%E6%95%99%E7%A8%8B/Windows-%E5%AE%89%E8%A3%85/"/>
    
    
    <category term="Windows" scheme="https://blog.admincmd.xyz/tags/Windows/"/>
    
    <category term="EFI" scheme="https://blog.admincmd.xyz/tags/EFI/"/>
    
    <category term="UEFI" scheme="https://blog.admincmd.xyz/tags/UEFI/"/>
    
    <category term="Windows 欲安装环境" scheme="https://blog.admincmd.xyz/tags/Windows-%E6%AC%B2%E5%AE%89%E8%A3%85%E7%8E%AF%E5%A2%83/"/>
    
    <category term="安装 Windows" scheme="https://blog.admincmd.xyz/tags/%E5%AE%89%E8%A3%85-Windows/"/>
    
    <category term="教程" scheme="https://blog.admincmd.xyz/tags/%E6%95%99%E7%A8%8B/"/>
    
  </entry>
  
</feed>
