<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title><![CDATA[吕旭说]]></title>
  <subtitle><![CDATA[汽车、网络、职教和生活]]></subtitle>
  <link href="/atom.xml" rel="self"/>
  <link href="https://lvxublog.com/"/>
  <updated>2022-12-09T04:14:16.679Z</updated>
  <id>https://lvxublog.com/</id>
  
  <author>
    <name><![CDATA[吕旭]]></name>
    <email><![CDATA[me@lvxu.site]]></email>
  </author>
  
  <generator uri="http://hexo.io/">Hexo</generator>
  
  <entry>
    <title><![CDATA[利用Ventoy构建真机虚拟机双启动ubuntu系统]]></title>
    <link href="https://lvxublog.com/2022/12/04/%E5%88%A9%E7%94%A8Ventoy%E6%9E%84%E5%BB%BA%E7%9C%9F%E6%9C%BA%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%8F%8C%E5%90%AF%E5%8A%A8ubuntu%E7%B3%BB%E7%BB%9F/"/>
    <id>https://lvxublog.com/2022/12/04/利用Ventoy构建真机虚拟机双启动ubuntu系统/</id>
    <published>2022-12-04T00:11:04.000Z</published>
    <updated>2022-12-09T04:14:16.679Z</updated>
    <content type="html"><![CDATA[<p>出于研究ROS2、Apollo等自动驾驶相关系统，需要安装一个ubuntu系统。Apollo显示要求Ubuntu18.04以上系统，ROS Humble版本要求Ubuntu 22.04。综合两者的要求，选择的最新的LTS版，Ubuntu 22.04.1 LTS进行安装。</p>
<h2 id="操作步骤">操作步骤</h2><p>具体操作步骤如下：</p>
<ol>
<li><p>在Virtualbox新建虚拟机，注意以下两点：</p>
<p>（1）在设置内存、处理器时，选中<code>Enable EFI</code>，以便将来系统既可以在<code>UEFI</code>下启动，也可以在<code>Legacy BIOS</code>下启动。</p>
<p>（2）需要在新建虚拟磁盘时，选中<code>Pre-allocate Full Size</code>，新建固定大小的vdi文件。</p>
</li>
<li><p>启动虚拟机，安装系统，完成设置。根据ventoy的文档，完成安装后，部分linux系统需要Legacy BIOS启动的补充包（比如Deepin），Ubuntu不需要这一步就省略了。为了让ubuntu顺利支持ventoy，需要从<a href="https://github.com/ventoy/vtoyboot/releases下载一个压缩包，并解压后执行脚本，然后关机即可。" target="_blank" rel="noopener">https://github.com/ventoy/vtoyboot/releases下载一个压缩包，并解压后执行脚本，然后关机即可。</a></p>
</li>
<li><p>在Virtualbox的虚拟介质管理中，释放新建虚拟机的虚拟硬盘。然后在文件资源管理器中找到这个文件，将文件后缀名由<code>.vdi</code>改为<code>.vdi.vtoy</code>。再在Virtualbox中注册这个虚拟硬盘。注意，由于后缀名改了，注册时，文件类型要选择所有文件才能找到改后缀名后的虚拟硬盘文件。</p>
</li>
<li><p>在<a href="https://www.ventoy.net/cn/download.html" target="_blank" rel="noopener">Ventoy官方网站</a>下载最新版的Ventoy。自从 Ventoy 1.0.66 版本开始，Ventoy 支持启动本地硬盘中的镜像文件，这也是我们能使用Ventoy实现虚拟机、真机双启动的基础。</p>
</li>
<li><p>找一个不用的U盘，容量无所谓，使用Ventoy将其制作为启动U盘。再使用<code>VentoyVlnk.exe</code>程序，创建一个虚拟硬盘的链接文件，后缀为<code>.vdi.vlnk.vtoy</code>。将这个链接文件复制到Ventoy启动U盘的中。重启电脑，在启动选项中使用这个U盘作为启动盘，就会进入Ventoy界面，在Ventoy界面中，选择刚才复制过来的链接，就会从vdi虚拟硬盘中启动系统，从而实现真机上运行Ubuntu的功能，发挥其最大性能。</p>
</li>
<li><p>重启进入windows系统，仍然可以从Virtualbox中启动虚拟机运行Ubuntu。</p>
</li>
</ol>
<p>至此，目标完成。</p>
<a id="more"></a>
<p>撰文时VirtualBox版本为7.0.2 ，Ventoy版本为1.0.84。</p>
<h2 id="进一步的设想">进一步的设想</h2><p>windows在真机启动后，能将ubuntu作为虚拟机启动，是因为ubuntu是存在于一个vdi虚拟硬盘中。而windows本身也是可以安装在vhd文件中的，如果真机上的windows以vhd的形式启动，是否能在ubuntu中将windows也作为虚拟机启动，从而实现windows和ubuntu互为虚拟机呢？</p>
<p>这个方案如果要实现，需要在通过ventoy启动ubuntu时，在ventoy的配置中，将<code>VTOY_LINUX_REMOUNT</code>配置为<code>&quot;0&quot;</code>。ventoy的文档对这个功能是这样描述的。</p>
<blockquote>
<p> “0”: Linux启动后不需要继续访问ISO文件所在的分区。  “1”: Linux启动后需要继续访问ISO文件所在的分区。默认值是 “0”。 该选项只对 Linux 系统镜像有效。 默认情况下，受Linux内核相关功能的限制，对于Linux系统，在启动后无法继续访问ISO文件所在的分区。在mount的时候会提示 device busy。 如果这里选择 1，则 Ventoy 会尝试通过一些特殊的手段绕过内核的这个限制，但是这个功能是实验性质的，没有经过大规模和长时间的验证。</p>
</blockquote>
<p>这样就能在ubuntu启动后，继续访问启动时的硬盘，从而在ubuntu中访问windows的vhd文件。此时使用虚拟机挂载这个虚拟硬盘，应该就可以在虚拟机中启动windows了。</p>
<p>不过这个还是一个设想，没有尝试过，先记录在这。</p>
<h2 id="参考文档">参考文档</h2><ol>
<li><a href="https://www.ventoy.net/cn/plugin_vtoyboot.html" target="_blank" rel="noopener">Plugin.VtoyBoot . Ventoy：Linux vDisk 文件启动插件</a></li>
<li><a href="https://www.ventoy.net/cn/plugin_control.html" target="_blank" rel="noopener">Plugin.control . Ventoy：Ventoy 全局控制插件</a></li>
</ol>
]]></content>
    <summary type="html">
    <![CDATA[构建一个既能在windows下用virtualbox作为虚拟机启动，又能利用ventoy在真机下启动的ubuntu系统]]>
    
    </summary>
    
      <category term="网络" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[使用IPv6后一些网站无法访问，有时能访问有时无法访问问题解决]]></title>
    <link href="https://lvxublog.com/2022/10/14/%E4%BD%BF%E7%94%A8IPv6%E5%90%8E%E4%B8%80%E4%BA%9B%E7%BD%91%E7%AB%99%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%EF%BC%8C%E6%9C%89%E6%97%B6%E8%83%BD%E8%AE%BF%E9%97%AE%E6%9C%89%E6%97%B6%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/"/>
    <id>https://lvxublog.com/2022/10/14/使用IPv6后一些网站无法访问，有时能访问有时无法访问问题解决/</id>
    <published>2022-10-14T14:35:11.000Z</published>
    <updated>2022-10-14T14:57:53.923Z</updated>
    <content type="html"><![CDATA[<p>今天领导布置了一个在CCTV-1上看节目的任务，我急忙在电脑上搜CCTV，结果央视的网站居然打不开了。赶快上搜一下，结果有的指向了知乎，结果发现知乎也打不开了。</p>
<p>ping了一下，发现打不开的网站ping到的都是ipv6的地址。</p>
<figure class="highlight plain"><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">PS C:\WINDOWS\system32&gt; ping tv.cctv.com</span><br><span class="line"></span><br><span class="line">正在 Ping g2.ctc.cctvcdn.net.lxdns.com [240e:918:1a00:201::15] 具有 32 字节的数据:</span><br><span class="line">来自 240e:918:1a00:201::15 的回复: 时间=13ms</span><br><span class="line">来自 240e:918:1a00:201::15 的回复: 时间=13ms</span><br><span class="line">来自 240e:918:1a00:201::15 的回复: 时间=13ms</span><br><span class="line">来自 240e:918:1a00:201::15 的回复: 时间=13ms</span><br><span class="line"></span><br><span class="line">240e:918:1a00:201::15 的 Ping 统计信息:</span><br><span class="line">    数据包: 已发送 = 4，已接收 = 4，丢失 = 0 (0% 丢失)，</span><br><span class="line">往返行程的估计时间(以毫秒为单位):</span><br><span class="line">    最短 = 13ms，最长 = 13ms，平均 = 13ms</span><br></pre></td></tr></table></figure>
<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><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">PS C:\WINDOWS\system32&gt; <span class="built_in">ping</span> www.zhihu.com</span><br><span class="line"></span><br><span class="line">正在 <span class="built_in">Ping</span> <span class="number">1595096</span>.sched.d0-dk.tdnsdp1.cn [<span class="number">240</span>e:<span class="number">925</span>:<span class="number">2</span>:<span class="number">730</span>::<span class="number">40</span>] 具有 <span class="number">32</span> 字节的数据:</span><br><span class="line">来自 <span class="number">240</span>e:<span class="number">925</span>:<span class="number">2</span>:<span class="number">730</span>::<span class="number">40</span> 的回复: 时间=<span class="number">2</span>ms</span><br><span class="line">来自 <span class="number">240</span>e:<span class="number">925</span>:<span class="number">2</span>:<span class="number">730</span>::<span class="number">40</span> 的回复: 时间=<span class="number">2</span>ms</span><br><span class="line">来自 <span class="number">240</span>e:<span class="number">925</span>:<span class="number">2</span>:<span class="number">730</span>::<span class="number">40</span> 的回复: 时间=<span class="number">2</span>ms</span><br><span class="line">来自 <span class="number">240</span>e:<span class="number">925</span>:<span class="number">2</span>:<span class="number">730</span>::<span class="number">40</span> 的回复: 时间=<span class="number">2</span>ms</span><br><span class="line"></span><br><span class="line"><span class="number">240</span>e:<span class="number">925</span>:<span class="number">2</span>:<span class="number">730</span>::<span class="number">40</span> 的 <span class="built_in">Ping</span> 统计信息:</span><br><span class="line">    数据包: 已发送 = <span class="number">4</span>，已接收 = <span class="number">4</span>，丢失 = <span class="number">0</span> (<span class="number">0</span>% 丢失)，</span><br><span class="line">往返行程的估计时间(以毫秒为单位):</span><br><span class="line">    最短 = <span class="number">2</span>ms，最长 = <span class="number">2</span>ms，平均 = <span class="number">2</span>ms</span><br></pre></td></tr></table></figure>
<p>而能打开的网址ping到的都是ipv4地址</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><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">PS C:\WINDOWS\system32&gt; <span class="built_in">ping</span> www.baidu.com</span><br><span class="line"></span><br><span class="line">正在 <span class="built_in">Ping</span> www.a.shifen.com [<span class="number">180</span>.<span class="number">101</span>.<span class="number">49</span>.<span class="number">11</span>] 具有 <span class="number">32</span> 字节的数据:</span><br><span class="line">来自 <span class="number">180</span>.<span class="number">101</span>.<span class="number">49</span>.<span class="number">11</span> 的回复: 字节=<span class="number">32</span> 时间=<span class="number">34</span>ms TTL=<span class="number">52</span></span><br><span class="line">来自 <span class="number">180</span>.<span class="number">101</span>.<span class="number">49</span>.<span class="number">11</span> 的回复: 字节=<span class="number">32</span> 时间=<span class="number">34</span>ms TTL=<span class="number">52</span></span><br><span class="line">来自 <span class="number">180</span>.<span class="number">101</span>.<span class="number">49</span>.<span class="number">11</span> 的回复: 字节=<span class="number">32</span> 时间=<span class="number">34</span>ms TTL=<span class="number">52</span></span><br><span class="line">来自 <span class="number">180</span>.<span class="number">101</span>.<span class="number">49</span>.<span class="number">11</span> 的回复: 字节=<span class="number">32</span> 时间=<span class="number">34</span>ms TTL=<span class="number">52</span></span><br><span class="line"></span><br><span class="line"><span class="number">180</span>.<span class="number">101</span>.<span class="number">49</span>.<span class="number">11</span> 的 <span class="built_in">Ping</span> 统计信息:</span><br><span class="line">    数据包: 已发送 = <span class="number">4</span>，已接收 = <span class="number">4</span>，丢失 = <span class="number">0</span> (<span class="number">0</span>% 丢失)，</span><br><span class="line">往返行程的估计时间(以毫秒为单位):</span><br><span class="line">    最短 = <span class="number">34</span>ms，最长 = <span class="number">34</span>ms，平均 = <span class="number">34</span>ms</span><br></pre></td></tr></table></figure>
<p>尝试根据以前的方法清除DNS缓存，通过管理员权限打开CMD</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></pre></td><td class="code"><pre><span class="line"># 清除DNS缓存信息</span><br><span class="line"><span class="built_in">ipconfig</span> /flushdns</span><br><span class="line"></span><br><span class="line"># 重置winsock 目录设置</span><br><span class="line">netsh winsock reset</span><br></pre></td></tr></table></figure>
<p>重启之后，没有解决问题</p>
<p>后来我在搜索时找到这篇文章<a href="https://neucrack.com/p/400" target="_blank" rel="noopener">使用IPv6后一些网站无法访问，有时能访问有时无法访问问题解决-次世代BUG池 (neucrack.com)</a></p>
<p>文章中说：</p>
<a id="more"></a>
<blockquote>
<p>由于 IPv6 对 MTU 的长度和 IPv4 不同，导致使用 IPv6 时会出现某些网站偶尔无法访问，其实就是 MTU 设置太大，有时候需要分包的时候被网络中一些不支持分包的设备给丢弃了，导致网站无法访问</p>
<blockquote>
<p>版权声明：本文为 neucrack 的原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接及本声明。<br>原文链接：<a href="https://neucrack.com/p/400" target="_blank" rel="noopener">https://neucrack.com/p/400</a></p>
</blockquote>
<p>公司网络支持 IPv6 后就一直访问一些网站有时候无法访问或者特别慢， 经过 @vowstar 的排查解决了问题:</p>
<p>由于 IPv6 对 MTU 的长度和 IPv4 不同，导致使用 IPv6 时会出现某些网站偶尔无法访问，其实就是 MTU 设置太大，有时候需要分包的时候被网络中一些不支持分包并且不会相应请求设备需要分包的设备给丢弃了，导致网站无法访问。 解决方法就是将(路由器的) MTU 设置小一点（比 IPV4 小 20 字节，比如 1432 字节）</p>
<p>这里记录下，以下为其原话：</p>
<blockquote>
<p>之前ipv6环境下简书时而可以访问时而不能访问的root cause找到了，原因是PMTU黑洞，其细节如下：<br>终端设备在发包时，也可以设置 DF （ Don’t Fragment ）标记来告诉路由器不要分片。这时中间路由器会丢掉超过 MTU 的包，回复一条 ICMP Fragmentation Needed 消息。发送者收到这个包后，下次就会发小一点的包，这个过程叫做 PMTU Discovery 。现实中可以看到 HTTPS （ TLS ）的流量大都是带 DF 标记的。<br>然而，互联网上有大量的中间设备为了所谓的“安全”或者没有正确配置，不回应 ICMP Fragmentation Needed 包，这使得访问某些网站时如果某个包的大小超过了 PMTU，会被无声地丢弃，直到 TCP 协议发现超时丢包进行重传，这非常缓慢。遇到这种情况，我们可以说你和目标服务器的路径上存在 PMTU 黑洞。<br>由于我们到简书之间的目标链路一直在变化，在链路节点中如果遇到了这种被错误配置的设备，就会导致我们无法访问简书。<br>现在国内 ISP 一般都是通过 PPPoE 虚拟拨号建立 WAN 口连接的。Ethernet 的默认 MTU 是 1500，但是 PPPoE 隧道有 8 个 bytes 的开销，所以 PPPoE 虚连接的 MTU 就是 1500-8=1492，减掉 IPv4 包头（ 20 字节）和 TCP 包头（ 20 字节），可以得知 IPv4 下需要把 MSS 设为 1452 以下。IPv6 的包头是 40 字节，所以 IPv6 下需要把 MSS 设为 1432 以下。<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></pre></td><td class="code"><pre><span class="line">&gt; &gt; #<span class="built_in">set</span> security flow tcp-mss all-tcp mss <span class="number">1452</span></span><br><span class="line">&gt; &gt; <span class="built_in">set</span> security flow tcp-mss all-tcp mss <span class="number">1432</span></span><br><span class="line">&gt; &gt;</span><br></pre></td></tr></table></figure>
<p>原先的设置值是1452, 改成1432后，强制丢包现象消失，原先无法访问的简书可以被访问了。</p>
</blockquote>
<p>路由器后台一般都可以直接更改，电脑 linux 可以临时：</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">&gt; sudo ifconfig enp7s0 mtu <span class="number">1432</span> up</span><br><span class="line">&gt;</span><br></pre></td></tr></table></figure>
</blockquote>
<p>我的路由器是TP-LINK的TL-R473GP-AC，在后台找到<code>基本设置</code> <code>WAN设置</code> <code>IPv6</code> 将<code>MTU</code> 设置为1432，重启路由器，问题解决。</p>
<p>但是CCTV-1上的节目也结束了。-_-||</p>
]]></content>
    <summary type="html">
    <![CDATA[一个使用ipv6以后能ping到ipv6地址的网站无法解决的问题。]]>
    
    </summary>
    
      <category term="ipv6" scheme="https://lvxublog.com/tags/ipv6/"/>
    
      <category term="网络" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[注册一个微软365的E5帐号]]></title>
    <link href="https://lvxublog.com/2022/05/09/%E6%B3%A8%E5%86%8C%E4%B8%80%E4%B8%AA%E5%BE%AE%E8%BD%AF365%E7%9A%84E5%E5%B8%90%E5%8F%B7/"/>
    <id>https://lvxublog.com/2022/05/09/注册一个微软365的E5帐号/</id>
    <published>2022-05-09T12:53:34.000Z</published>
    <updated>2022-07-05T07:52:39.323Z</updated>
    <content type="html"><![CDATA[<a id="more"></a>
<p>虽然我已经有了一个Microsoft 365 的个人帐号，但是365个人帐号的Onedrive只有1G的容量，而E5开发帐号的Onedrive可以达到5T的容量，况且可以白嫖，拿来备份一下电影、视频什么的最合适不过了。</p>
<p>激活E5的方法，网上已经的教程很多了，我就不重复一遍了。我是参考<a href="https://www.mspace.cc/archives/479?msclkid=004df6f9cf6a11eca00578af8b60c507" target="_blank" rel="noopener">2022 免费申请永久正版 Office E5 开发者订阅+ 5T 不限速网盘教程 (mspace.cc)</a>操作的，大家也可以参考。</p>
<p>下面把我在操作中遇到的问题说一下。</p>
<h2 id="手机收不到激活码">手机收不到激活码</h2><p>注册的过程中，有一步是要输入手机号接收验证码，但是我始终无法收到验证码。网上搜了一下，都说是接收验证码使用了Google的服务，需要解决访问海外网站的问题。</p>
<p>我在实践中发现，除了需要能访问谷歌的服务之外，还需要把中文页面换成英文页面，才能收到验证码。也就是把<a href="https://developer.microsoft.com/zh-cn/microsoft-365/profile" target="_blank" rel="noopener">https://developer.microsoft.com/zh-cn/microsoft-365/profile</a>中间的<code>zh-cn</code>改成<code>en-us</code>就可以了，即访问<a href="https://developer.microsoft.com/en-us/microsoft-365/profile" target="_blank" rel="noopener">https://developer.microsoft.com/en-us/microsoft-365/profile</a></p>
<!--more-->
<h2 id="涉及到的一些网站">涉及到的一些网站</h2><ol>
<li><a href="https://developer.microsoft.com/zh-cn/microsoft-365/profile" target="_blank" rel="noopener">仪表板 - Microsoft 365 开发人员中心</a> ：用于注册，及查看剩余天数。</li>
<li><a href="https://admin.onedrive.com/?v=StorageSettings" target="_blank" rel="noopener">SharePoint 管理中心</a>：可以设置Onedrive容量。</li>
<li><a href="https://admin.microsoft.com/#/homepage" target="_blank" rel="noopener">Microsoft 365 admin center</a>：管理用户</li>
<li><a href="https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps" target="_blank" rel="noopener">Microsoft Azure</a> ：注册应用、API等，用于访问微软的API以延长续订。</li>
<li><a href="https://e5.qyi.io/" target="_blank" rel="noopener">E5续订 (qyi.io)</a>  ：一个访问outlook API 以续订E5的网站。</li>
<li><a href="https://e5renew.com/" target="_blank" rel="noopener">E5 Renew Plus 官方网站</a> ： 一个续订E5的桌面版软件。</li>
</ol>
]]></content>
    <summary type="html">
    <![CDATA[<a id="more"></a>
<p>虽然我已经有了一个Microsoft 365 的个人帐号，但是365个人帐号的Onedrive只有1G的容量，而E5开发帐号的Onedrive可以达到5T的容量，况且可以白嫖，拿来备份一下电影、视频什么的最合适不过了。</p>
<p>激活]]>
    </summary>
    
      <category term="Onedrive" scheme="https://lvxublog.com/tags/Onedrive/"/>
    
      <category term="Microsoft 365" scheme="https://lvxublog.com/tags/Microsoft-365/"/>
    
      <category term="网络" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[一个网页乱码问题]]></title>
    <link href="https://lvxublog.com/2022/05/09/%E4%B8%80%E4%B8%AA%E7%BD%91%E9%A1%B5%E4%B9%B1%E7%A0%81%E9%97%AE%E9%A2%98/"/>
    <id>https://lvxublog.com/2022/05/09/一个网页乱码问题/</id>
    <published>2022-05-09T12:29:52.000Z</published>
    <updated>2022-05-09T12:32:02.446Z</updated>
    <content type="html"><![CDATA[<p>之前的文章「<a href="https://lvxu.site/2022/05/01/自己制作的第一个WEB应用/" target="_blank" rel="noopener">自己制作的第一个WEB应用 | 吕旭说 (lvxu.site)</a>」里描述了我的第一个网页应用。页面开发出来一开始是发布在Github上的。在Github上一切正常。但是这个页面要给别人用，考虑到访问速度，就用Gitee的导入功能，从Github复制了一份到Gitee上。</p>
<p>没想到在Github上一切正常的网页，在Gitee上就成了乱码。</p>
<p>在网上搜了一下，都说是中文编码的问题，如果网页HTML文件的编码和文件中<code>&lt;meta charset=&quot;&quot;&gt;</code>里面不一致的话，就会有这种情况。比如网页HTML文件的编码是GBK（在Windows下，ANSI即为GBK），而文件中将编码规定为UTF-8（<code>&lt;meta charset=&quot;UTF-8&quot;&gt;</code>），则中文会呈现为乱码。</p>
<p>而我这个显然不是这种情况。我的HTML文件是用notepad++编写的，一开始就是UTF-8编码格式，况且网页在Github Page里面显示是正常的。同时，我点右键打开乱码网页的源代码，发现源代码就是乱码的。</p>
<p>我又考虑到，是否是换行码的问题。我尝试将HTML文档的Windows换行符<code>CR</code> <code>LF</code>改成了Unix换行符 <code>LF</code>，重新上传，没有解决问题。</p>
<p>最后，我尝试在windows下，先用系统自带的<strong>记事本</strong>将HTML的编码转为ANSI，再重新保存为UTF-8，发现页面里多出来几个「?」，删除这几个问号后，再上传，问题解决。</p>
]]></content>
    <summary type="html">
    <![CDATA[<p>之前的文章「<a href="https://lvxu.site/2022/05/01/自己制作的第一个WEB应用/" target="_blank" rel="noopener">自己制作的第一个WEB应用 | 吕旭说 (lvxu.site)</a>」里描述了我的第一个网]]>
    </summary>
    
      <category term="网络" scheme="https://lvxublog.com/tags/%E7%BD%91%E7%BB%9C/"/>
    
      <category term="乱码" scheme="https://lvxublog.com/tags/%E4%B9%B1%E7%A0%81/"/>
    
      <category term="网络" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[自己制作的第一个WEB应用]]></title>
    <link href="https://lvxublog.com/2022/05/01/%E8%87%AA%E5%B7%B1%E5%88%B6%E4%BD%9C%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AAWEB%E5%BA%94%E7%94%A8/"/>
    <id>https://lvxublog.com/2022/05/01/自己制作的第一个WEB应用/</id>
    <published>2022-05-01T02:34:32.000Z</published>
    <updated>2022-05-01T02:37:04.000Z</updated>
    <content type="html"><![CDATA[<p>前两天自己完成了第一个HTML5+JavaScript的Web应用，发文纪念一下。</p>
<h2 id="应用的作用">应用的作用</h2><p>很多使用多连杆后桥的汽车，由于配置或预留了后桥转向功能，因此后桥的前束控制臂无法用于四轮定位参数的调整。此时，后桥的两个调整螺栓调整时，会使得前束和外倾同时变化，导致不太容易调整。</p>
<p>传统上，需要在一张特定的坐标图上根据当前的四轮定位外倾值、前束值和目标外倾值、前束值根据规定的斜率规律进行绘图，找到一个中间值。这样就能分两步，先调整到中间值，再调整到目标值，实现两步调整。如果不这样的话可能会导致反复调整，效率较低。</p>
<p>我之前是做了一个EXCEL文档，用数学方式代替作图，实现输入数据自动计算中间值和调整顺序。但是在手机上，这个文档需要用WPS手机版打开，不太方便，因此萌生了用网页实现这个功能的想法。</p>
<h2 id="页面开发">页面开发</h2><p>基本思路就是HTML5搭建页面框架，用JavaScript进行计算。</p>
<a id="more"></a>
<p>当然，实际开发中也遇到了很多困难，其中，最大的困难就是，我特么根本不懂HTML5和JavaScript啊😭。</p>
<p>没关系，边学边练么，咱就是做职教的，深知这个道理，从应用中学习是最快的。</p>
<p>先从找教程开始，一个叫<a href="https://www.runoob.com/" target="_blank" rel="noopener">菜鸟教程 </a>的网站给了我很大的帮助。这个网站不仅有从零基础开始的教程，还用在线编辑代码，实时显示的功能，给了我很大的帮助。从HTML页面的组成，<code>input</code>的使用，<code>JavaScript</code>中<code>document.getElementById</code>和<code>innerHTML</code>还有<code>document.getElementById(&quot;&quot;).value</code>的用法，通过这个网页的编辑，我也学到了很多。</p>
<p>由于变量太多，为了怕乱了，我所有的变量都使用了中文。</p>
<p>功能实现后，为了更好看，能调整字体大小，我又找了一个现成的轮子<a href="https://github.com/MathGod/web-reading-settings-plugin" target="_blank" rel="noopener">MathGod/web-reading-settings-plugin: html5小说网站阅读设置控件插件</a>。使用了之后，页面文字都能调整大小了，我又发现input输入框并没有根据页面文字大小一同变大，一直是默认尺寸。经过搜索，发现需要在<code>&lt;head&gt;</code>里的<code>&lt;style&gt;</code>里加入一句<code>select,input{font-size:1em;}</code>就可以了。</p>
<p>最终的源代码见：<a href="https://github.com/lvxu1987/BMW_SLDW/" target="_blank" rel="noopener">https://github.com/lvxu1987/BMW_SLDW/</a></p>
<p>成品网页地址为：<a href="https://lvxu.site/BMW_SLDW/" target="_blank" rel="noopener">https://lvxu.site/BMW_SLDW/</a></p>
<h2 id="源代码">源代码</h2><p>源代码如下。</p>
<figure class="highlight html"><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><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br><span class="line">251</span><br><span class="line">252</span><br><span class="line">253</span><br><span class="line">254</span><br><span class="line">255</span><br><span class="line">256</span><br><span class="line">257</span><br><span class="line">258</span><br><span class="line">259</span><br><span class="line">260</span><br><span class="line">261</span><br><span class="line">262</span><br><span class="line">263</span><br><span class="line">264</span><br><span class="line">265</span><br><span class="line">266</span><br><span class="line">267</span><br><span class="line">268</span><br><span class="line">269</span><br><span class="line">270</span><br><span class="line">271</span><br><span class="line">272</span><br><span class="line">273</span><br><span class="line">274</span><br><span class="line">275</span><br><span class="line">276</span><br><span class="line">277</span><br><span class="line">278</span><br><span class="line">279</span><br><span class="line">280</span><br><span class="line">281</span><br><span class="line">282</span><br><span class="line">283</span><br><span class="line">284</span><br><span class="line">285</span><br><span class="line">286</span><br><span class="line">287</span><br><span class="line">288</span><br><span class="line">289</span><br><span class="line">290</span><br><span class="line">291</span><br><span class="line">292</span><br><span class="line">293</span><br><span class="line">294</span><br><span class="line">295</span><br><span class="line">296</span><br><span class="line">297</span><br><span class="line">298</span><br><span class="line">299</span><br><span class="line">300</span><br><span class="line">301</span><br><span class="line">302</span><br><span class="line">303</span><br><span class="line">304</span><br><span class="line">305</span><br><span class="line">306</span><br><span class="line">307</span><br><span class="line">308</span><br><span class="line">309</span><br><span class="line">310</span><br><span class="line">311</span><br><span class="line">312</span><br><span class="line">313</span><br><span class="line">314</span><br><span class="line">315</span><br><span class="line">316</span><br><span class="line">317</span><br><span class="line">318</span><br><span class="line">319</span><br><span class="line">320</span><br><span class="line">321</span><br><span class="line">322</span><br><span class="line">323</span><br><span class="line">324</span><br><span class="line">325</span><br><span class="line">326</span><br><span class="line">327</span><br><span class="line">328</span><br><span class="line">329</span><br><span class="line">330</span><br><span class="line">331</span><br><span class="line">332</span><br><span class="line">333</span><br><span class="line">334</span><br><span class="line">335</span><br><span class="line">336</span><br><span class="line">337</span><br><span class="line">338</span><br><span class="line">339</span><br><span class="line">340</span><br><span class="line">341</span><br><span class="line">342</span><br><span class="line">343</span><br><span class="line">344</span><br><span class="line">345</span><br><span class="line">346</span><br><span class="line">347</span><br><span class="line">348</span><br><span class="line">349</span><br><span class="line">350</span><br><span class="line">351</span><br><span class="line">352</span><br><span class="line">353</span><br><span class="line">354</span><br><span class="line">355</span><br><span class="line">356</span><br><span class="line">357</span><br><span class="line">358</span><br><span class="line">359</span><br><span class="line">360</span><br><span class="line">361</span><br><span class="line">362</span><br><span class="line">363</span><br><span class="line">364</span><br><span class="line">365</span><br><span class="line">366</span><br><span class="line">367</span><br><span class="line">368</span><br><span class="line">369</span><br><span class="line">370</span><br><span class="line">371</span><br><span class="line">372</span><br><span class="line">373</span><br><span class="line">374</span><br><span class="line">375</span><br><span class="line">376</span><br><span class="line">377</span><br><span class="line">378</span><br><span class="line">379</span><br><span class="line">380</span><br><span class="line">381</span><br><span class="line">382</span><br><span class="line">383</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="meta">&lt;!DOCTYPE <span class="meta-keyword">html</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">html</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">head</span>&gt;</span> </span><br><span class="line">	<span class="tag">&lt;<span class="name">meta</span> <span class="attr">charset</span>=<span class="string">"utf-8"</span>&gt;</span> </span><br><span class="line">	<span class="tag">&lt;<span class="name">title</span>&gt;</span>宝马汽车后轮四轮定位中间值计算工具网页版<span class="tag">&lt;/<span class="name">title</span>&gt;</span> </span><br><span class="line">	<span class="tag">&lt;<span class="name">meta</span> <span class="attr">name</span>=<span class="string">"description"</span> <span class="attr">content</span>=<span class="string">"一个用于调整宝马品牌汽车后桥四轮定位时，替代作图法的简便工具"</span>&gt;</span></span><br><span class="line">	<span class="tag">&lt;<span class="name">meta</span> <span class="attr">name</span>=<span class="string">"author"</span> <span class="attr">content</span>=<span class="string">"吕旭：me@lvxu.site"</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">style</span>&gt;</span></span><br><span class="line">    body&#123;margin: 0 ; height: 100%&#125;</span><br><span class="line">    .kongjian&#123;</span><br><span class="line">             width:5%;</span><br><span class="line">             height:50px;</span><br><span class="line">             border: 1.5px solid;</span><br><span class="line">             border-radius: 3px;</span><br><span class="line">             margin: 0px;</span><br><span class="line">             float:right;</span><br><span class="line">             background-color:transparent;</span><br><span class="line">             color:#9E9E9E;</span><br><span class="line">                  &#125;</span><br><span class="line">	select,input&#123;font-size:1em;&#125;</span><br><span class="line">  <span class="tag">&lt;/<span class="name">style</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">head</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">body</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="comment">&lt;!--在body标签开始加入网站标题和控件按钮--&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">button</span> <span class="attr">class</span>=<span class="string">"kongjian"</span> <span class="attr">onclick</span>=<span class="string">"return ExecuteFun(this)"</span> &gt;</span>全屏<span class="tag">&lt;/<span class="name">button</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">button</span> <span class="attr">class</span>=<span class="string">"kongjian"</span> <span class="attr">id</span>=<span class="string">"pingkuan"</span>  <span class="attr">onclick</span>=<span class="string">"pingkuan();"</span> &gt;</span>屏宽<span class="tag">&lt;/<span class="name">button</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">button</span> <span class="attr">class</span>=<span class="string">"kongjian"</span> <span class="attr">onclick</span>=<span class="string">"bg();"</span>&gt;</span>背景<span class="tag">&lt;/<span class="name">button</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">button</span> <span class="attr">class</span>=<span class="string">"kongjian"</span> <span class="attr">id</span>=<span class="string">"ziti"</span> <span class="attr">onclick</span>=<span class="string">"ziti();"</span> &gt;</span>字体<span class="tag">&lt;/<span class="name">button</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">button</span> <span class="attr">class</span>=<span class="string">"kongjian"</span> <span class="attr">onclick</span>=<span class="string">"jiacu()"</span>&gt;</span><span class="tag">&lt;<span class="name">b</span>&gt;</span>B<span class="tag">&lt;/<span class="name">b</span>&gt;</span><span class="tag">&lt;/<span class="name">button</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">button</span> <span class="attr">class</span>=<span class="string">"kongjian"</span> <span class="attr">onclick</span>=<span class="string">"zitibianxiao()"</span>&gt;</span>A-<span class="tag">&lt;/<span class="name">button</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">button</span> <span class="attr">class</span>=<span class="string">"kongjian"</span> <span class="attr">onclick</span>=<span class="string">"zitibianda()"</span>&gt;</span>A+<span class="tag">&lt;/<span class="name">button</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">hr</span> <span class="attr">style</span>=<span class="string">"margin: 30px;&gt;</span></span></span><br><span class="line"><span class="tag"><span class="string"></span></span></span><br><span class="line"><span class="tag"><span class="string">&lt;!--加id="</span><span class="attr">content</span>"。控制字体大小，粗细，宋楷黑体和屏幕宽度<span class="attr">--</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">div</span> <span class="attr">id</span>=<span class="string">"content"</span>;<span class="attr">style</span>=<span class="string">"margin: 0 auto;"</span>;<span class="attr">text-align:center</span>;&gt;</span></span><br><span class="line">	<span class="tag">&lt;<span class="name">H1</span>&gt;</span>宝马汽车后轮四轮定位<span class="tag">&lt;/<span class="name">br</span>&gt;</span>中间值计算工具网页版<span class="tag">&lt;/<span class="name">H1</span>&gt;</span></span><br><span class="line">	</span><br><span class="line">	<span class="comment">&lt;!--，</span></span><br><span class="line"><span class="comment">	车型选择框</span></span><br><span class="line"><span class="comment">	</span></span><br><span class="line"><span class="comment">	G12：7系；G38：5系；G31：5系旅行车</span></span><br><span class="line"><span class="comment">	G05：X5；G06：X6；G07：X7</span></span><br><span class="line"><span class="comment">	F02：老款7系；F18：老款5系</span></span><br><span class="line"><span class="comment">	F11：5系旅行车；F07：5系GT</span></span><br><span class="line"><span class="comment">	G32：6系</span></span><br><span class="line"><span class="comment">	G14：8系敞篷；G15：8系轿跑</span></span><br><span class="line"><span class="comment">	G16：8系双门轿跑</span></span><br><span class="line"><span class="comment">	)</span></span><br><span class="line"><span class="comment">		--&gt;</span> </span><br><span class="line">	<span class="tag">&lt;<span class="name">div</span> <span class="attr">style</span>=<span class="string">"border: 2px dashed #ccc;text-align:center;"</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">H3</span>&gt;</span>选择车型<span class="tag">&lt;/<span class="name">H3</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">select</span> <span class="attr">name</span>=<span class="string">"选择车型"</span> <span class="attr">autofocus</span>&gt;</span></span><br><span class="line">			<span class="tag">&lt;<span class="name">option</span> <span class="attr">value</span>=<span class="string">"G12、G38"</span>&gt;</span>G12、G38、G31<span class="tag">&lt;/<span class="name">option</span>&gt;</span></span><br><span class="line">			<span class="tag">&lt;<span class="name">option</span> <span class="attr">value</span>=<span class="string">"G05、G06、G07"</span>&gt;</span>G05、G06、G07<span class="tag">&lt;/<span class="name">option</span>&gt;</span></span><br><span class="line">			<span class="tag">&lt;<span class="name">option</span> <span class="attr">value</span>=<span class="string">"F02、F18"</span>&gt;</span>F02、F18<span class="tag">&lt;/<span class="name">option</span>&gt;</span></span><br><span class="line">			<span class="tag">&lt;<span class="name">option</span> <span class="attr">value</span>=<span class="string">"F11、F07"</span>&gt;</span>F11、F07<span class="tag">&lt;/<span class="name">option</span>&gt;</span></span><br><span class="line">			<span class="tag">&lt;<span class="name">option</span> <span class="attr">value</span>=<span class="string">"G32"</span>&gt;</span>G32<span class="tag">&lt;/<span class="name">option</span>&gt;</span></span><br><span class="line">			<span class="tag">&lt;<span class="name">option</span> <span class="attr">value</span>=<span class="string">"G14、G15"</span>&gt;</span>G14、G15<span class="tag">&lt;/<span class="name">option</span>&gt;</span></span><br><span class="line">			<span class="tag">&lt;<span class="name">option</span> <span class="attr">value</span>=<span class="string">"G16"</span>&gt;</span>G16<span class="tag">&lt;/<span class="name">option</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;/<span class="name">select</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"Kc值"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"Kd值"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">H3</span>&gt;</span>选择四轮定位仪设备<span class="tag">&lt;/<span class="name">H3</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">form</span> <span class="attr">onchange</span>=<span class="string">"判断设备型号()"</span>&gt;</span></span><br><span class="line">			<span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"radio"</span> <span class="attr">name</span>=<span class="string">"四轮定位仪设备"</span> <span class="attr">id</span>=<span class="string">"四轮定位仪设备"</span> <span class="attr">value</span>=<span class="string">"亨特"</span>&gt;</span>亨特</span><br><span class="line">			<span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"radio"</span> <span class="attr">name</span>=<span class="string">"四轮定位仪设备"</span> <span class="attr">id</span>=<span class="string">"四轮定位仪设备"</span> <span class="attr">value</span>=<span class="string">"百思巴特"</span>&gt;</span>百斯巴特</span><br><span class="line">		<span class="tag">&lt;/<span class="name">form</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span>&gt;</span>（务必先选择车型和设备）<span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">	<span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line">	</span><br><span class="line">	<span class="comment">&lt;!--</span></span><br><span class="line"><span class="comment">	标准值输入框</span></span><br><span class="line"><span class="comment">	和亨特相关的计算项目会根据上面的设备选项自动出现或消失</span></span><br><span class="line"><span class="comment">	--&gt;</span> </span><br><span class="line">    <span class="tag">&lt;<span class="name">div</span> <span class="attr">style</span>=<span class="string">"border: 2px dashed #ccc;text-align:center;"</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">H3</span>&gt;</span>输入标准值<span class="tag">&lt;/<span class="name">H3</span>&gt;</span></span><br><span class="line"></span><br><span class="line">		<span class="tag">&lt;<span class="name">div</span> <span class="attr">id</span>=<span class="string">"外倾标准值上下限"</span>  <span class="attr">class</span>=<span class="string">"亨特定位仪显示"</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">label</span> <span class="attr">for</span>=<span class="string">"外倾标准值上限"</span>&gt;</span>外倾标准值上限：-<span class="tag">&lt;/<span class="name">label</span>&gt;</span>  </span><br><span class="line">        <span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"number"</span> <span class="attr">id</span>=<span class="string">"外倾标准值上限度"</span> <span class="attr">name</span>=<span class="string">"外倾标准值上限度"</span> <span class="attr">value</span>=<span class="string">"1"</span> <span class="attr">min</span>=<span class="string">"0"</span> <span class="attr">max</span>=<span class="string">"3"</span> <span class="attr">fontsize</span>=<span class="string">"inherit"</span>&gt;</span>°  </span><br><span class="line">        <span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"number"</span> <span class="attr">id</span>=<span class="string">"外倾标准值上限分"</span> <span class="attr">name</span>=<span class="string">"外倾标准值上限分"</span> <span class="attr">min</span>=<span class="string">"0"</span> <span class="attr">max</span>=<span class="string">"59"</span> <span class="attr">value</span>=<span class="string">"30"</span> /&gt;</span> '<span class="tag">&lt;/<span class="name">br</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">label</span> <span class="attr">for</span>=<span class="string">"外倾标准值下限"</span>&gt;</span>外倾标准值下限：-<span class="tag">&lt;/<span class="name">label</span>&gt;</span>  </span><br><span class="line">        <span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"number"</span> <span class="attr">id</span>=<span class="string">"外倾标准值下限度"</span> <span class="attr">name</span>=<span class="string">"外倾标准值下限度"</span> <span class="attr">value</span>=<span class="string">"1"</span> <span class="attr">min</span>=<span class="string">"0"</span> <span class="attr">max</span>=<span class="string">"3"</span> &gt;</span>°  </span><br><span class="line">        <span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"number"</span> <span class="attr">id</span>=<span class="string">"外倾标准值下限分"</span> <span class="attr">name</span>=<span class="string">"外倾标准值下限分"</span> <span class="attr">min</span>=<span class="string">"0"</span> <span class="attr">max</span>=<span class="string">"59"</span> <span class="attr">value</span>=<span class="string">"30"</span> /&gt;</span> '<span class="tag">&lt;/<span class="name">br</span>&gt;</span></span><br><span class="line">	   <span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"></span><br><span class="line">	   <span class="tag">&lt;<span class="name">label</span> <span class="attr">for</span>=<span class="string">"外倾标准值"</span>&gt;</span>外倾标准值：-<span class="tag">&lt;/<span class="name">label</span>&gt;</span>  </span><br><span class="line">        <span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"number"</span> <span class="attr">id</span>=<span class="string">"外倾标准值度"</span> <span class="attr">name</span>=<span class="string">"外倾标准值度"</span> <span class="attr">value</span>=<span class="string">"1"</span> <span class="attr">min</span>=<span class="string">"0"</span> <span class="attr">max</span>=<span class="string">"3"</span> <span class="attr">class</span>=<span class="string">"亨特定位仪锁死"</span> &gt;</span>°  </span><br><span class="line">        <span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"number"</span> <span class="attr">id</span>=<span class="string">"外倾标准值分"</span> <span class="attr">name</span>=<span class="string">"外倾标准值分"</span> <span class="attr">min</span>=<span class="string">"0"</span> <span class="attr">max</span>=<span class="string">"59"</span> <span class="attr">value</span>=<span class="string">"30"</span> <span class="attr">class</span>=<span class="string">"亨特定位仪锁死"</span> /&gt;</span> '</span><br><span class="line">        <span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"外倾标准值折合分"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span>	</span><br><span class="line"></span><br><span class="line">		<span class="tag">&lt;<span class="name">div</span> <span class="attr">id</span>=<span class="string">"前束标准值分上下限"</span>   <span class="attr">class</span>=<span class="string">"亨特定位仪显示"</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">label</span> <span class="attr">for</span>=<span class="string">"前束标准值分上限"</span>&gt;</span>前束标准值上限(分)：<span class="tag">&lt;/<span class="name">label</span>&gt;</span>  </span><br><span class="line">        <span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"number"</span> <span class="attr">id</span>=<span class="string">"前束标准值分上限"</span> <span class="attr">name</span>=<span class="string">"前束标准值分上限"</span> <span class="attr">value</span>=<span class="string">"8"</span> <span class="attr">min</span>=<span class="string">"-100"</span> <span class="attr">max</span>=<span class="string">"100"</span> /&gt;</span>  ′<span class="tag">&lt;<span class="name">br</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">label</span> <span class="attr">for</span>=<span class="string">"前束标准值分下限"</span>&gt;</span>前束标准值下限(分)：<span class="tag">&lt;/<span class="name">label</span>&gt;</span>  </span><br><span class="line">        <span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"number"</span> <span class="attr">id</span>=<span class="string">"前束标准值分下限"</span> <span class="attr">name</span>=<span class="string">"前束标准值分下限"</span> <span class="attr">value</span>=<span class="string">"8"</span> <span class="attr">min</span>=<span class="string">"-100"</span> <span class="attr">max</span>=<span class="string">"100"</span> /&gt;</span>  ′</span><br><span class="line">		<span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">label</span> <span class="attr">for</span>=<span class="string">"前束标准值分"</span>&gt;</span>前束标准值分：<span class="tag">&lt;/<span class="name">label</span>&gt;</span>  </span><br><span class="line">        <span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"number"</span> <span class="attr">id</span>=<span class="string">"前束标准值分"</span> <span class="attr">name</span>=<span class="string">"前束标准值分"</span> <span class="attr">value</span>=<span class="string">"8"</span> <span class="attr">min</span>=<span class="string">"-100"</span> <span class="attr">max</span>=<span class="string">"100"</span> <span class="attr">class</span>=<span class="string">"亨特定位仪锁死"</span> /&gt;</span>  ′</span><br><span class="line">        <span class="tag">&lt;<span class="name">br</span>/&gt;</span> </span><br><span class="line">		（注意：如前束为负值需要输入“-”）</span><br><span class="line">	<span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"></span><br><span class="line">	<span class="comment">&lt;!--实际值输入框--&gt;</span> </span><br><span class="line">    <span class="tag">&lt;<span class="name">div</span> <span class="attr">style</span>=<span class="string">"border: 2px dashed #ccc;text-align:center;"</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">H3</span>&gt;</span>输入实际值<span class="tag">&lt;/<span class="name">H3</span>&gt;</span></span><br><span class="line">	    <span class="tag">&lt;<span class="name">label</span> <span class="attr">for</span>=<span class="string">"外倾实际值"</span>&gt;</span>外倾实际值：-<span class="tag">&lt;/<span class="name">label</span>&gt;</span>  </span><br><span class="line">        <span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"number"</span> <span class="attr">id</span>=<span class="string">"外倾实际值度"</span> <span class="attr">name</span>=<span class="string">"外倾实际值度"</span> <span class="attr">value</span>=<span class="string">"1"</span> <span class="attr">min</span>=<span class="string">"0"</span> <span class="attr">max</span>=<span class="string">"3"</span>/&gt;</span>° </span><br><span class="line">        <span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"number"</span> <span class="attr">id</span>=<span class="string">"外倾实际值分"</span> <span class="attr">name</span>=<span class="string">"外倾实际值分"</span> <span class="attr">min</span>=<span class="string">"0"</span> <span class="attr">max</span>=<span class="string">"59"</span> <span class="attr">value</span>=<span class="string">"12"</span> /&gt;</span> ′</span><br><span class="line">        <span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"外倾实际值折合分"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span>	</span><br><span class="line"></span><br><span class="line">        <span class="tag">&lt;<span class="name">label</span> <span class="attr">for</span>=<span class="string">"前束实际值分"</span>&gt;</span>前束实际值分：<span class="tag">&lt;/<span class="name">label</span>&gt;</span>  </span><br><span class="line">        <span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"number"</span> <span class="attr">id</span>=<span class="string">"前束实际值分"</span> <span class="attr">name</span>=<span class="string">"前束实际值分"</span> <span class="attr">value</span>=<span class="string">"-10"</span> <span class="attr">min</span>=<span class="string">"-100"</span> <span class="attr">max</span>=<span class="string">"100"</span> /&gt;</span> ′  </span><br><span class="line">        <span class="tag">&lt;<span class="name">br</span>/&gt;</span> </span><br><span class="line">		（注意：如前束为负值需要输入“-”）</span><br><span class="line">	<span class="tag">&lt;/<span class="name">div</span>&gt;</span>	</span><br><span class="line">	</span><br><span class="line">	<span class="comment">&lt;!--中间值计算结果--&gt;</span> </span><br><span class="line">    <span class="tag">&lt;<span class="name">div</span> <span class="attr">style</span>=<span class="string">"border: 2px dashed #ccc;text-align:center;"</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">H3</span>&gt;</span>中间值计算结果<span class="tag">&lt;/<span class="name">H3</span>&gt;</span></span><br><span class="line">        <span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"中间值1外倾折合分"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"中间值1外倾"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"中间值1前束"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"中间值2外倾折合分"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"中间值2外倾"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"中间值2前束"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"中间值1距实际值距离"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"中间值2距实际值距离"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"中间值外倾"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"中间值前束"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">p</span> <span class="attr">id</span>=<span class="string">"先调整臂说明"</span>&gt;</span><span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">	<span class="tag">&lt;/<span class="name">div</span>&gt;</span>	</span><br><span class="line">	<span class="comment">&lt;!--按钮--&gt;</span> 	</span><br><span class="line">	<span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"button"</span> <span class="attr">id</span>=<span class="string">"计算中间值"</span> <span class="attr">onclick</span>=<span class="string">"计算中间值()"</span> <span class="attr">value</span>=<span class="string">"计算中间值"</span>&gt;</span></span><br><span class="line">	<span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">"button"</span> <span class="attr">id</span>=<span class="string">"清除数据"</span> <span class="attr">onclick</span>=<span class="string">"清除数据()"</span> <span class="attr">value</span>=<span class="string">"清除数据"</span>&gt;</span></span><br><span class="line">	</span><br><span class="line">	<span class="comment">&lt;!--说明--&gt;</span> </span><br><span class="line">    <span class="tag">&lt;<span class="name">div</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;<span class="name">H3</span>&gt;</span>操作提示<span class="tag">&lt;/<span class="name">H3</span>&gt;</span></span><br><span class="line">        1.所有上部横摆臂有调整螺丝的车型需要画图调整后桥；<span class="tag">&lt;/<span class="name">br</span>&gt;</span></span><br><span class="line">		2.先在顶端选择<span class="tag">&lt;<span class="name">strong</span>&gt;</span>车型<span class="tag">&lt;/<span class="name">strong</span>&gt;</span>和<span class="tag">&lt;<span class="name">strong</span>&gt;</span>四轮定位仪设备<span class="tag">&lt;/<span class="name">strong</span>&gt;</span>；<span class="tag">&lt;/<span class="name">br</span>&gt;</span></span><br><span class="line">		3.填写标准值和实际值（注意前束正负号）；<span class="tag">&lt;/<span class="name">br</span>&gt;</span></span><br><span class="line">		4.系统自动计算中间值和对应的调整臂；<span class="tag">&lt;/<span class="name">br</span>&gt;</span></span><br><span class="line">		5.调整中间值对应臂的调整螺栓，只看前束，将前束值从实际值调整为中间值（外倾值也自动调整到中间值）；<span class="tag">&lt;/<span class="name">br</span>&gt;</span></span><br><span class="line">		6.调整另一个臂的调整螺栓，只看前束，将前束值从中间值调整为标准值（外倾值也自动调整到标准值）；<span class="tag">&lt;/<span class="name">br</span>&gt;</span></span><br><span class="line">		7.如外倾没有自动调整到正确，检查参数输入是否正确，底盘杆件有无变形。<span class="tag">&lt;/<span class="name">br</span>&gt;</span></span><br><span class="line">		<span class="tag">&lt;/<span class="name">br</span>&gt;</span></span><br><span class="line">		有任何问题，可以<span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">"mailto:xu.lv@best.bmw.com.cn"</span> <span class="attr">target</span>=<span class="string">"_top"</span>&gt;</span>发送邮件<span class="tag">&lt;/<span class="name">a</span>&gt;</span>给我</span><br><span class="line">	<span class="tag">&lt;/<span class="name">div</span>&gt;</span>		</span><br><span class="line"><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br><span class="line"></span><br><span class="line">	<span class="tag">&lt;<span class="name">script</span>&gt;</span></span><br><span class="line"><span class="javascript">	<span class="function"><span class="keyword">function</span> 计算中间值(<span class="params"></span>) </span>&#123;</span></span><br><span class="line"><span class="javascript">		<span class="comment">// 计算前先调用函数清除之前的输出结果</span></span></span><br><span class="line">			清除输出结果();</span><br><span class="line">		</span><br><span class="line"><span class="javascript">		<span class="comment">// 计算亨特标准值</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 四轮定位仪设备 =  <span class="built_in">document</span>.getElementsByName(<span class="string">"四轮定位仪设备"</span>);</span></span><br><span class="line"><span class="javascript">			<span class="keyword">if</span> (四轮定位仪设备[<span class="number">0</span>].checked == <span class="literal">true</span>)&#123;  <span class="comment">//如果第一个选项被选中（即设备是亨特的）</span></span></span><br><span class="line">				</span><br><span class="line"><span class="javascript">				<span class="comment">// 外倾标准值折合分计算</span></span></span><br><span class="line"><span class="javascript">					<span class="keyword">var</span> 外倾标准值上限度 = <span class="built_in">Number</span>(<span class="built_in">document</span>.getElementById(<span class="string">"外倾标准值上限度"</span>).value);</span></span><br><span class="line"><span class="javascript">					<span class="keyword">var</span> 外倾标准值上限分 = <span class="built_in">Number</span>(<span class="built_in">document</span>.getElementById(<span class="string">"外倾标准值上限分"</span>).value);</span></span><br><span class="line"><span class="javascript">					<span class="keyword">var</span> 外倾标准值上限折合分 = -(外倾标准值上限度*<span class="number">60</span>+外倾标准值上限分);</span></span><br><span class="line">			</span><br><span class="line"><span class="javascript">					<span class="keyword">var</span> 外倾标准值下限度 = <span class="built_in">Number</span>(<span class="built_in">document</span>.getElementById(<span class="string">"外倾标准值下限度"</span>).value);</span></span><br><span class="line"><span class="javascript">					<span class="keyword">var</span> 外倾标准值下限分 = <span class="built_in">Number</span>(<span class="built_in">document</span>.getElementById(<span class="string">"外倾标准值下限分"</span>).value);</span></span><br><span class="line"><span class="javascript">					<span class="keyword">var</span> 外倾标准值下限折合分 = -(外倾标准值下限度*<span class="number">60</span>+外倾标准值下限分)</span></span><br><span class="line">		</span><br><span class="line"><span class="javascript">					<span class="keyword">var</span> 亨特外倾标准值折合分 = (外倾标准值上限折合分+外倾标准值下限折合分)/<span class="number">2</span>;</span></span><br><span class="line"><span class="javascript">					亨特外倾标准值折合分 = <span class="built_in">Math</span>.round(亨特外倾标准值折合分); <span class="comment">//小数取整</span></span></span><br><span class="line"><span class="javascript">					<span class="comment">//alert(亨特外倾标准值折合分); //检测数值用。</span></span></span><br><span class="line"><span class="javascript">				<span class="comment">// 将算出的外倾值输出到外倾标准值的表格里</span></span></span><br><span class="line"><span class="javascript">					<span class="built_in">document</span>.getElementById(<span class="string">"外倾标准值度"</span>).value = -<span class="built_in">Math</span>.ceil(亨特外倾标准值折合分/<span class="number">60</span>);<span class="comment">//外倾折合分÷60，得数向上取整。  后面显示中间值外倾时，正负号是在公式里带出来的，这里的度数就是负值。这里的负号是写在外面的，所以需要再另写一个负号，负负得正，产生一个正数填在外倾标准值的输入框里。</span></span></span><br><span class="line"><span class="javascript">					<span class="built_in">document</span>.getElementById(<span class="string">"外倾标准值分"</span>).value = <span class="built_in">Math</span>.abs(亨特外倾标准值折合分%<span class="number">60</span>);<span class="comment">//外倾折合分除60取余数再取绝对值。</span></span></span><br><span class="line"></span><br><span class="line"><span class="javascript">				<span class="comment">// 计算前束标准值</span></span></span><br><span class="line"><span class="javascript">					<span class="keyword">var</span> 前束标准值分上限 = <span class="built_in">Number</span>(<span class="built_in">document</span>.getElementById(<span class="string">"前束标准值分上限"</span>).value);</span></span><br><span class="line"><span class="javascript">					<span class="keyword">var</span> 前束标准值分下限 = <span class="built_in">Number</span>(<span class="built_in">document</span>.getElementById(<span class="string">"前束标准值分下限"</span>).value);</span></span><br><span class="line"><span class="javascript">					<span class="keyword">var</span> 亨特前束标准值分 = (前束标准值分上限+前束标准值分下限)/<span class="number">2</span></span></span><br><span class="line"><span class="javascript">					<span class="built_in">document</span>.getElementById(<span class="string">"前束标准值分"</span>).value = 亨特前束标准值分;</span></span><br><span class="line"><span class="javascript">				<span class="comment">// 将算出的前束值填入前束标准值分的表格里</span></span></span><br><span class="line">				</span><br><span class="line">		&#125;</span><br><span class="line">		</span><br><span class="line"><span class="javascript">		<span class="comment">// 计算和输出外倾标准值折算为分之后的值</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 外倾标准值度 = <span class="built_in">Number</span>(<span class="built_in">document</span>.getElementById(<span class="string">"外倾标准值度"</span>).value);</span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 外倾标准值分 = <span class="built_in">Number</span>(<span class="built_in">document</span>.getElementById(<span class="string">"外倾标准值分"</span>).value);</span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 外倾标准值折合分 = -(外倾标准值度*<span class="number">60</span>+外倾标准值分)</span></span><br><span class="line"><span class="javascript">			<span class="comment">//document.getElementById("外倾标准值折合分").innerHTML = "外倾标准值折合为分：" + 外倾标准值折合分 + "'";</span></span></span><br><span class="line">		</span><br><span class="line"><span class="javascript">		<span class="comment">// 计算和输出外倾实际值折算为分之后的值</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 外倾实际值度 = <span class="built_in">Number</span>(<span class="built_in">document</span>.getElementById(<span class="string">"外倾实际值度"</span>).value);</span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 外倾实际值分 = <span class="built_in">Number</span>(<span class="built_in">document</span>.getElementById(<span class="string">"外倾实际值分"</span>).value);</span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 外倾实际值折合分 = -(外倾实际值度*<span class="number">60</span>+外倾实际值分)</span></span><br><span class="line"><span class="javascript">			<span class="comment">//document.getElementById("外倾实际值折合分").innerHTML = "外倾实际值折合为分：" + 外倾实际值折合分 + "'";</span></span></span><br><span class="line">		</span><br><span class="line"><span class="javascript">		<span class="comment">// 前束取值</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 前束标准值分 = <span class="built_in">Number</span>(<span class="built_in">document</span>.getElementById(<span class="string">"前束标准值分"</span>).value);</span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 前束实际值分 = <span class="built_in">Number</span>(<span class="built_in">document</span>.getElementById(<span class="string">"前束实际值分"</span>).value);</span></span><br><span class="line"><span class="javascript">		<span class="comment">// Kc和Kd取值</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 斜率 =  <span class="built_in">document</span>.getElementsByName(<span class="string">"选择车型"</span>);</span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> Kc = <span class="number">-0.75</span>   <span class="comment">// Kc（横向摆臂/上部横摆臂调整螺栓斜率）</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> Kd = <span class="number">1.03</span>   <span class="comment">//Kd(下臂/外倾控制臂螺栓调整斜率</span></span></span><br><span class="line">			</span><br><span class="line"><span class="javascript">			<span class="keyword">switch</span>(斜率[<span class="number">0</span>].value)&#123;   <span class="comment">// 根据车型为Kc和Kd赋值</span></span></span><br><span class="line"><span class="javascript">				<span class="keyword">case</span> <span class="string">"G12、G38"</span> : </span></span><br><span class="line">					Kc = -0.75;</span><br><span class="line">					Kd = 1.03</span><br><span class="line"><span class="javascript">					<span class="keyword">break</span>;</span></span><br><span class="line"><span class="javascript">				<span class="keyword">case</span> <span class="string">"G05、G06、G07"</span> : </span></span><br><span class="line">					Kc = -0.82;</span><br><span class="line">					Kd = 1.01</span><br><span class="line"><span class="javascript">					<span class="keyword">break</span>;</span></span><br><span class="line"><span class="javascript">				<span class="keyword">case</span> <span class="string">"F02、F18"</span> : </span></span><br><span class="line">					Kc = -0.659;</span><br><span class="line">					Kd = 1.316</span><br><span class="line"><span class="javascript">					<span class="keyword">break</span>;</span></span><br><span class="line"><span class="javascript">				<span class="keyword">case</span> <span class="string">"F11、F07"</span> : </span></span><br><span class="line">					Kc = -0.568;</span><br><span class="line">					Kd = 1.607</span><br><span class="line"><span class="javascript">					<span class="keyword">break</span>;</span></span><br><span class="line"><span class="javascript">				<span class="keyword">case</span> <span class="string">"G32"</span> : </span></span><br><span class="line">					Kc = -0.85;</span><br><span class="line">					Kd = 1.05</span><br><span class="line"><span class="javascript">					<span class="keyword">break</span>;</span></span><br><span class="line"><span class="javascript">				<span class="keyword">case</span> <span class="string">"G14、G15"</span> : </span></span><br><span class="line">					Kc = -0.83;</span><br><span class="line">					Kd = 1.06</span><br><span class="line"><span class="javascript">					<span class="keyword">break</span>;	</span></span><br><span class="line"><span class="javascript">				<span class="keyword">case</span> <span class="string">"G16"</span> : </span></span><br><span class="line">					Kc = -0.82;</span><br><span class="line">					Kd = 0.96</span><br><span class="line"><span class="javascript">					<span class="keyword">break</span>;					</span></span><br><span class="line">				&#125;</span><br><span class="line">		</span><br><span class="line"><span class="javascript">			<span class="comment">//document.getElementById("Kc值").innerHTML = "上臂斜率为：" + Kc;</span></span></span><br><span class="line"><span class="javascript">			<span class="comment">//document.getElementById("Kd值").innerHTML = "下臂斜率为：" + Kd;</span></span></span><br><span class="line">		</span><br><span class="line"><span class="javascript">			<span class="comment">// 中间值1为先调整下臂，中间值2为先调整上臂。</span></span></span><br><span class="line">		</span><br><span class="line"><span class="javascript">		<span class="comment">// 中间值1外倾计算</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 中间值<span class="number">1</span>外倾折合分 = ((Kc*外倾标准值折合分-前束标准值分)-(Kd*外倾实际值折合分-前束实际值分))/(Kc-Kd);</span></span><br><span class="line"><span class="javascript">			中间值<span class="number">1</span>外倾折合分 = <span class="built_in">Math</span>.round(中间值<span class="number">1</span>外倾折合分);</span></span><br><span class="line"><span class="javascript">			<span class="comment">//document.getElementById("中间值1外倾折合分").innerHTML = "中间值1外倾折合分为：&lt;/br&gt;" + 中间值1外倾折合分 + "'";</span></span></span><br><span class="line">		</span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 中间值<span class="number">1</span>外倾度 = <span class="built_in">Math</span>.ceil(中间值<span class="number">1</span>外倾折合分/<span class="number">60</span>) ; <span class="comment">//外倾折合分÷60，得数向上取整。</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 中间值<span class="number">1</span>外倾分 = <span class="built_in">Math</span>.abs(中间值<span class="number">1</span>外倾折合分%<span class="number">60</span>);  <span class="comment">//外倾折合分除60取余数再取绝对值。</span></span></span><br><span class="line"><span class="javascript">			<span class="comment">//document.getElementById("中间值1外倾").innerHTML = "中间值1外倾为：&lt;/br&gt;" + 中间值1外倾度 + "°" + 中间值1外倾分 + "'";		</span></span></span><br><span class="line">		</span><br><span class="line"><span class="javascript">			<span class="comment">// 中间值1前束计算</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 中间值<span class="number">1</span>前束 = (Kc*Kd*(外倾实际值折合分-外倾标准值折合分)+Kd*前束标准值分-Kc*前束实际值分)/(Kd-Kc);</span></span><br><span class="line">		</span><br><span class="line"><span class="javascript">			中间值<span class="number">1</span>前束 = <span class="built_in">Math</span>.round(中间值<span class="number">1</span>前束);</span></span><br><span class="line"><span class="javascript">			<span class="comment">//document.getElementById("中间值1前束").innerHTML = "中间值1前束：&lt;/br&gt;" + 中间值1前束 + "'";</span></span></span><br><span class="line"></span><br><span class="line"><span class="javascript">			<span class="comment">// 中间值2外倾计算</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 中间值<span class="number">2</span>外倾折合分 = ((Kc*外倾实际值折合分-前束实际值分)-(Kd*外倾标准值折合分-前束标准值分))/(Kc-Kd);</span></span><br><span class="line">		</span><br><span class="line"><span class="javascript">			中间值<span class="number">2</span>外倾折合分 = <span class="built_in">Math</span>.round(中间值<span class="number">2</span>外倾折合分); <span class="comment">//小数取整</span></span></span><br><span class="line"><span class="javascript">			<span class="comment">//document.getElementById("中间值2外倾折合分").innerHTML = "中间值2外倾折合分为：&lt;/br&gt;" + 中间值2外倾折合分 + "'";</span></span></span><br><span class="line">		</span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 中间值<span class="number">2</span>外倾度 = <span class="built_in">Math</span>.ceil(中间值<span class="number">2</span>外倾折合分/<span class="number">60</span>) ; <span class="comment">//外倾折合分÷60，得数向上取整。</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 中间值<span class="number">2</span>外倾分 = <span class="built_in">Math</span>.abs(中间值<span class="number">2</span>外倾折合分%<span class="number">60</span>);  <span class="comment">//外倾折合分除60取余数再取绝对值。</span></span></span><br><span class="line"><span class="javascript">			<span class="comment">//document.getElementById("中间值2外倾").innerHTML = "中间值2外倾为：&lt;/br&gt;" + 中间值2外倾度 + "°" + 中间值2外倾分 + "'";		</span></span></span><br><span class="line"></span><br><span class="line"><span class="javascript">		<span class="comment">// 中间值2前束计算</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 中间值<span class="number">2</span>前束 = (Kc*Kd*(外倾标准值折合分-外倾实际值折合分)+Kd*前束实际值分-Kc*前束标准值分)/(Kd-Kc);</span></span><br><span class="line">		</span><br><span class="line"><span class="javascript">			中间值<span class="number">2</span>前束 = <span class="built_in">Math</span>.round(中间值<span class="number">2</span>前束);</span></span><br><span class="line"><span class="javascript">			<span class="comment">//document.getElementById("中间值2前束").innerHTML = "中间值2前束：&lt;/br&gt;" + 中间值2前束 + "'";</span></span></span><br><span class="line">	</span><br><span class="line"><span class="javascript">		<span class="comment">// 中间值1和中间值2比较</span></span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 中间值<span class="number">1</span>距实际值距离 = <span class="built_in">Math</span>.sqrt(<span class="built_in">Math</span>.pow((中间值<span class="number">1</span>外倾折合分-外倾实际值折合分),<span class="number">2</span>)+<span class="built_in">Math</span>.pow((中间值<span class="number">1</span>前束-前束实际值分),<span class="number">2</span>))</span></span><br><span class="line"><span class="javascript">			<span class="keyword">var</span> 中间值<span class="number">2</span>距实际值距离 = <span class="built_in">Math</span>.sqrt(<span class="built_in">Math</span>.pow((中间值<span class="number">2</span>外倾折合分-外倾实际值折合分),<span class="number">2</span>)+<span class="built_in">Math</span>.pow((中间值<span class="number">2</span>前束-前束实际值分),<span class="number">2</span>))</span></span><br><span class="line"><span class="javascript">			<span class="comment">//document.getElementById("中间值1距实际值距离").innerHTML = "中间值1距实际值：&lt;/br&gt;" + 中间值1距实际值距离;   </span></span></span><br><span class="line"><span class="javascript">			<span class="comment">//document.getElementById("中间值2距实际值距离").innerHTML = "中间值2距实际值：&lt;/br&gt;" + 中间值2距实际值距离;</span></span></span><br><span class="line">		</span><br><span class="line">			if (中间值1距实际值距离 == 0) &#123;</span><br><span class="line"><span class="javascript">				<span class="built_in">document</span>.getElementById(<span class="string">"先调整臂说明"</span>).innerHTML = <span class="string">"中间值恰好等于当前值，&lt;strong&gt;直接调整上部横摆臂&lt;/strong&gt;即可调整到标准值。"</span> ;</span></span><br><span class="line"><span class="javascript">			&#125; <span class="keyword">else</span> <span class="keyword">if</span> (中间值<span class="number">2</span>距实际值距离 == <span class="number">0</span>) &#123;</span></span><br><span class="line"><span class="javascript">				<span class="built_in">document</span>.getElementById(<span class="string">"先调整臂说明"</span>).innerHTML = <span class="string">"中间值恰好等于当前值，&lt;strong&gt;直接调整下臂（外倾控制臂）&lt;/strong&gt;即可调整到标准值。"</span> ;				</span></span><br><span class="line"><span class="javascript">			&#125; <span class="keyword">else</span> <span class="keyword">if</span> (中间值<span class="number">1</span>距实际值距离 &lt; 中间值<span class="number">2</span>距实际值距离) &#123;</span></span><br><span class="line"><span class="javascript">				<span class="built_in">document</span>.getElementById(<span class="string">"中间值外倾"</span>).innerHTML = <span class="string">"中间值外倾为：&lt;/br&gt;"</span> + 中间值<span class="number">1</span>外倾度 + <span class="string">"°"</span> + 中间值<span class="number">1</span>外倾分 + <span class="string">"'"</span>;</span></span><br><span class="line"><span class="javascript">				<span class="built_in">document</span>.getElementById(<span class="string">"中间值前束"</span>).innerHTML = <span class="string">"中间值前束为：&lt;/br&gt;"</span> + 中间值<span class="number">1</span>前束 + <span class="string">"'"</span>;</span></span><br><span class="line"><span class="xml">				document.getElementById("先调整臂说明").innerHTML = "①先调整<span class="tag">&lt;<span class="name">strong</span>&gt;</span>下臂（外倾控制臂）<span class="tag">&lt;/<span class="name">strong</span>&gt;</span>调整螺栓，至四轮定位仪显示实际值等于中间值<span class="tag">&lt;/<span class="name">br</span>&gt;</span>②再调整先调整<span class="tag">&lt;<span class="name">strong</span>&gt;</span>上部横摆臂<span class="tag">&lt;/<span class="name">strong</span>&gt;</span>螺栓螺栓，至四轮定位仪显示实际值等于标准值<span class="tag">&lt;/<span class="name">br</span>&gt;</span>" ;</span></span><br><span class="line"><span class="javascript">			&#125; <span class="keyword">else</span> <span class="keyword">if</span>(中间值<span class="number">1</span>距实际值距离 &gt; 中间值<span class="number">2</span>距实际值距离) &#123;</span></span><br><span class="line"><span class="javascript">				<span class="built_in">document</span>.getElementById(<span class="string">"中间值外倾"</span>).innerHTML = <span class="string">"中间值外倾为：&lt;/br&gt;"</span> + 中间值<span class="number">2</span>外倾度 + <span class="string">"°"</span> + 中间值<span class="number">2</span>外倾分 + <span class="string">"'"</span>;</span></span><br><span class="line"><span class="javascript">				<span class="built_in">document</span>.getElementById(<span class="string">"中间值前束"</span>).innerHTML = <span class="string">"中间值前束为：&lt;/br&gt;"</span> + 中间值<span class="number">2</span>前束 + <span class="string">"'"</span>;</span></span><br><span class="line"><span class="xml">				document.getElementById("先调整臂说明").innerHTML = "①先调整<span class="tag">&lt;<span class="name">strong</span>&gt;</span>上部横摆臂<span class="tag">&lt;/<span class="name">strong</span>&gt;</span>螺栓螺栓，至四轮定位仪显示实际值等于中间值<span class="tag">&lt;/<span class="name">br</span>&gt;</span>②再调整<span class="tag">&lt;<span class="name">strong</span>&gt;</span>下臂（外倾控制臂）<span class="tag">&lt;/<span class="name">strong</span>&gt;</span>调整螺栓，至四轮定位仪显示实际值等于标准值 " ;</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="javascript">	<span class="function"><span class="keyword">function</span> 清除数据(<span class="params"></span>)</span>&#123;</span></span><br><span class="line">		清除输出结果();</span><br><span class="line">		清除输入数据();</span><br><span class="line"><span class="javascript">		<span class="comment">//判断设备型号();</span></span></span><br><span class="line">	&#125;</span><br><span class="line"><span class="javascript">	<span class="function"><span class="keyword">function</span> 清除输出结果(<span class="params"></span>)</span>&#123;</span></span><br><span class="line"><span class="javascript">		<span class="comment">// 清除所有的输出结果</span></span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"中间值1外倾折合分"</span>).innerHTML = <span class="string">""</span></span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"中间值1外倾"</span>).innerHTML = <span class="string">""</span>	</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"中间值1前束"</span>).innerHTML = <span class="string">""</span>		</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"中间值2外倾折合分"</span>).innerHTML = <span class="string">""</span>		</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"中间值2前束"</span>).innerHTML = <span class="string">""</span>		</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"中间值1距实际值距离"</span>).innerHTML = <span class="string">""</span>		</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"中间值2距实际值距离"</span>).innerHTML = <span class="string">""</span>		</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"中间值外倾"</span>).innerHTML = <span class="string">""</span>		</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"中间值前束"</span>).innerHTML = <span class="string">""</span>		</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"先调整臂说明"</span>).innerHTML = <span class="string">""</span>		</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"外倾实际值折合分"</span>).innerHTML = <span class="string">""</span>		</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"Kc值"</span>).innerHTML = <span class="string">""</span>		</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"Kd值"</span>).innerHTML = <span class="string">""</span>	</span></span><br><span class="line">	&#125;</span><br><span class="line"><span class="javascript">	<span class="function"><span class="keyword">function</span> 清除输入数据(<span class="params"></span>)</span>&#123;</span></span><br><span class="line"><span class="javascript">		<span class="comment">// 清除输入数据</span></span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"外倾标准值度"</span>).value = <span class="string">""</span>;</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"外倾标准值分"</span>).value = <span class="string">""</span>;</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"前束标准值分"</span>).value = <span class="string">""</span>;</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"外倾实际值度"</span>).value = <span class="string">""</span>;</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"外倾实际值分"</span>).value = <span class="string">""</span>;</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"前束实际值分"</span>).value = <span class="string">""</span>;</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"外倾标准值上限度"</span>).value = <span class="string">""</span>;</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"外倾标准值上限分"</span>).value = <span class="string">""</span>;</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"前束标准值分上限"</span>).value = <span class="string">""</span>;</span></span><br><span class="line"><span class="javascript">			<span class="built_in">document</span>.getElementById(<span class="string">"前束标准值分下限"</span>).value = <span class="string">""</span>;</span></span><br><span class="line">	&#125;	</span><br><span class="line">	</span><br><span class="line"><span class="javascript">	<span class="function"><span class="keyword">function</span> 判断设备型号(<span class="params"></span>) </span>&#123;</span></span><br><span class="line"><span class="javascript">		<span class="keyword">var</span> 四轮定位仪设备 =  <span class="built_in">document</span>.getElementsByName(<span class="string">"四轮定位仪设备"</span>);</span></span><br><span class="line">		</span><br><span class="line"><span class="javascript">		<span class="comment">// alert(四轮定位仪设备[0].value);  // alert是弹框，可以用来查找BUG。 //radio的[0][1]是选项的顺序，用value来获得值，获得的值和选项将没有关系。</span></span></span><br><span class="line"><span class="javascript">		<span class="comment">//alert(四轮定位仪设备[0].checked);</span></span></span><br><span class="line"><span class="javascript">		<span class="comment">//alert(四轮定位仪设备[1].checked);	</span></span></span><br><span class="line"><span class="javascript">		<span class="keyword">if</span> (四轮定位仪设备[<span class="number">0</span>].checked == <span class="literal">true</span>)&#123;  <span class="comment">//如果第一个选项被选中</span></span></span><br><span class="line"><span class="javascript">			<span class="comment">//alert("选了亨特");</span></span></span><br><span class="line">			显示亨特相关选项();</span><br><span class="line"><span class="javascript">		&#125; <span class="keyword">else</span> <span class="keyword">if</span> (四轮定位仪设备[<span class="number">1</span>].checked == <span class="literal">true</span>) &#123;</span></span><br><span class="line"><span class="javascript">			<span class="comment">//alert("选了百斯巴特");</span></span></span><br><span class="line">			隐藏亨特相关选项();</span><br><span class="line">		&#125;</span><br><span class="line">	&#125;	</span><br><span class="line"></span><br><span class="line"><span class="javascript">	<span class="function"><span class="keyword">function</span> 显示亨特相关选项(<span class="params"></span>) </span>&#123;</span></span><br><span class="line"><span class="javascript">	    <span class="comment">//显示所有div中classclass="亨特定位仪显示"的项目</span></span></span><br><span class="line"><span class="javascript">		<span class="keyword">var</span> 亨特相关显示内容 = <span class="built_in">document</span>.getElementsByClassName(<span class="string">"亨特定位仪显示"</span>); </span></span><br><span class="line"><span class="javascript">		<span class="keyword">var</span> i;</span></span><br><span class="line">		for (i=0;i&lt;亨特相关显示内容.length;i++)&#123;</span><br><span class="line"><span class="javascript">			亨特相关显示内容[i].style.display=<span class="string">"block"</span>;</span></span><br><span class="line">		&#125;	</span><br><span class="line"><span class="javascript">		<span class="comment">//锁定所有input中class="亨特定位仪锁死"的项目为不可编辑状态，同时将相关input的值清空</span></span></span><br><span class="line"><span class="javascript">		<span class="keyword">var</span> 亨特定位仪锁死项目 = <span class="built_in">document</span>.getElementsByClassName(<span class="string">"亨特定位仪锁死"</span>); </span></span><br><span class="line"><span class="javascript">		<span class="keyword">var</span> i;</span></span><br><span class="line">		for (i=0;i&lt;亨特定位仪锁死项目.length;i++)&#123;</span><br><span class="line"><span class="javascript">			亨特定位仪锁死项目[i].disabled=<span class="string">"true"</span>;</span></span><br><span class="line"><span class="javascript">			亨特定位仪锁死项目[i].value=<span class="string">""</span></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="javascript">	<span class="function"><span class="keyword">function</span> 隐藏亨特相关选项(<span class="params"></span>) </span>&#123;</span></span><br><span class="line"><span class="javascript">	    <span class="comment">//隐藏所有div中classclass="亨特定位仪显示"的项目</span></span></span><br><span class="line"><span class="javascript">		<span class="keyword">var</span> 亨特相关显示内容 = <span class="built_in">document</span>.getElementsByClassName(<span class="string">"亨特定位仪显示"</span>); </span></span><br><span class="line"><span class="javascript">		<span class="keyword">var</span> i;</span></span><br><span class="line">		for (i=0;i&lt;亨特相关显示内容.length;i++)&#123;</span><br><span class="line"><span class="javascript">			亨特相关显示内容[i].style.display=<span class="string">"none"</span>;</span></span><br><span class="line">		&#125;	</span><br><span class="line"><span class="javascript">		<span class="comment">//解锁所有input中class="亨特定位仪锁死"的项目为可以编辑状态</span></span></span><br><span class="line"><span class="javascript">		<span class="keyword">var</span> 亨特定位仪锁死项目 = <span class="built_in">document</span>.getElementsByClassName(<span class="string">"亨特定位仪锁死"</span>); </span></span><br><span class="line"><span class="javascript">		<span class="keyword">var</span> i;</span></span><br><span class="line">		for (i=0;i&lt;亨特定位仪锁死项目.length;i++)&#123;</span><br><span class="line"><span class="javascript">			亨特定位仪锁死项目[i].disabled=<span class="string">""</span>;</span></span><br><span class="line">		&#125;	</span><br><span class="line">	&#125;	</span><br><span class="line">	<span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br><span class="line"></span><br><span class="line"><span class="comment">&lt;!--在body标签结束前引入js--&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">"read.js"</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br><span class="line">	</span><br><span class="line"><span class="tag">&lt;/<span class="name">body</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">html</span>&gt;</span></span><br></pre></td></tr></table></figure>
<h2 id="参考资料">参考资料</h2><ol>
<li><a href="https://www.runoob.com/html/html5-intro.html" target="_blank" rel="noopener">HTML5 教程 | 菜鸟教程 (runoob.com)</a></li>
<li><a href="https://github.com/MathGod/web-reading-settings-plugin" target="_blank" rel="noopener">MathGod/web-reading-settings-plugin: html5小说网站阅读设置控件插件。</a></li>
</ol>
]]></content>
    <summary type="html">
    <![CDATA[自己制作了一个用于宝马品牌汽车后桥四轮定位调整中间值计算的工具。]]>
    
    </summary>
    
      <category term="汽车维修" scheme="https://lvxublog.com/tags/%E6%B1%BD%E8%BD%A6%E7%BB%B4%E4%BF%AE/"/>
    
      <category term="四轮定位" scheme="https://lvxublog.com/tags/%E5%9B%9B%E8%BD%AE%E5%AE%9A%E4%BD%8D/"/>
    
      <category term="网页应用" scheme="https://lvxublog.com/tags/%E7%BD%91%E9%A1%B5%E5%BA%94%E7%94%A8/"/>
    
      <category term="网络" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/"/>
    
      <category term="汽车" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/%E6%B1%BD%E8%BD%A6/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[免费开源剪辑软件Shotcut推荐和使用教程]]></title>
    <link href="https://lvxublog.com/2020/04/03/%E5%85%8D%E8%B4%B9%E5%BC%80%E6%BA%90%E5%89%AA%E8%BE%91%E8%BD%AF%E4%BB%B6Shotcut%E6%8E%A8%E8%8D%90%E5%92%8C%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/"/>
    <id>https://lvxublog.com/2020/04/03/免费开源剪辑软件Shotcut推荐和使用教程/</id>
    <published>2020-04-03T14:40:11.000Z</published>
    <updated>2020-04-24T06:18:56.000Z</updated>
    <content type="html"><![CDATA[<p>最近想剪辑一下教学视频，想着能不用盗版尽量不用盗版，况且自己的需求并不复杂，又不是剪辑电影电视剧了，就没有下载那几个大牌的剪辑软件。</p>
<p>简单研究了一下免费的剪辑软件，最后选择了Shutcut。这是一个开源的免费软件，官网地址是<a href="https://shotcut.org/" target="_blank" rel="noopener">https://shotcut.org/</a>。 官网进去是英文版的，不要恐慌，软件下载下来界面有中文版。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-c9cde800af774a25.png" alt="Shotcut软件的界面.png"></p>
<p>下面大概说一下这个软件怎么使用。</p>
<h2 id="导入素材，建立时间线">导入素材，建立时间线</h2><ol>
<li><p>将需要剪辑的素材拖动到「播放列表」区域，将素材导入到软件。</p>
</li>
<li><p>点击时间线下面的「三横线符号」，打开附加操作菜单，在里面选择添加视频轨道，根据需要可以再添加音频轨道或多个视频轨道。</p>
</li>
</ol>
<a id="more"></a>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-6e9c1416aa769851.png" alt="Shotcut剪辑-添加视频轨道.png"></p>
<ol>
<li>将素材拖动到对应的轨道上。如果需要素材先后播放，就拖动到同一个轨道上，如果需要视频以画中画的形式叠加播放，就拖动到不同轨道上。</li>
</ol>
<h2 id="音频视频对齐">音频视频对齐</h2><p>教学视频往往会同时录制多个视频，比如一个是电脑录屏，一个是教师出境。</p>
<p>剪辑时如果两个视频没有对齐的话，教师的口型就对不上声音，或者PPT翻页和声音不一致。</p>
<p>Shotcut这个软件的一个好处是每个视频轨道都可以显示音频波形，通过对比音频波形可以很方便的对齐视频。视频对齐后，将其中一条的音轨关掉，保留收音效果较好的那一条视频的音轨。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-2cd6341efd6c23bc.png" alt="音频对齐.png"></p>
<h2 id="调整画中画位置">调整画中画位置</h2><h3 id="改变上层视频的位置和大小">改变上层视频的位置和大小</h3><p>导入两个视频时，视频都会居中布置，如果需要调整上层视频的位置的话，需要在<strong>「时间线」</strong>里面选中上层视频，然后在<strong>「滤镜」</strong>中选择<strong>「位置与尺寸」</strong>，就可以调整上层视频的位置了。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-3800e1ab46359915.png" alt="调整画中画位置.png"></p>
<p>实际上，不光上层视频可以调整位置，下层视频也可以调整位置，从而做出两个视频并列的效果。</p>
<h3 id="上层视频位置和大小的变换">上层视频位置和大小的变换</h3><p>有时在教学视频里面，上层视频（比较教师出境视频）的大小和位置是需要变化的，比如说PPT首页的时候，教师出境视频比较大，内页的时候，出境视频会比较小。</p>
<p>这种情况，首先需要对视频进行切割。选中需要切割的视频，将播放点的竖线拖动到你要切割的位置。在时间线上面的工具栏选择<strong>「于播放点处切割」</strong>，选中的视频就可以被切割为2个视频，可以单独设置滤镜，选择<strong>「位置和尺寸」</strong>滤镜，就可以重新设置上层视频的位置和尺寸了。</p>
<p>这里有一个小技巧，通过音频波形，可以迅速的找到PPT的翻页点，因为翻页点上基本不说话。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-4b17501392284cec.png" alt="切割视频.png"></p>
<p>因为上层视频发生了变化，为了不显得太突兀，可以增加一个淡入淡出的效果。</p>
<p>在前一段视频上增加一个<strong>视频淡出</strong>滤镜，在后一段视频上增加一个<strong>视频淡入</strong>滤镜。完成后时间轴上会出现两个半透明的三角形。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-2b83869cbc60b29c.png" alt="淡入淡出.png"></p>
<h2 id="显示字幕、文字">显示字幕、文字</h2><p>首先在视频轨道上方再增加一个新轨道。</p>
<p>然后在工具栏的<strong>「打开其他」</strong>里面选择<strong>「文本」</strong>，在打开的对话框里输入你要显示的文本内容。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-e0831c89225c031d.png" alt="插入文本.png"></p>
<p>输入文本后点OK，在预览框里会显示文本的内容，将其拖动到新增加的轨道上。注意拖动的时候不要点中间那个点，要按住文本框的其他位置拖动。否则的话不会把文本框拖动到时间线上，而是会把文本框在画面上移动位置。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-489412aff51fe6c8.png" alt="插入文本效果.png"></p>
<p>将文本拖动到轨道上之后，就可以在滤镜里设置文本的字体、颜色等。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-cdef91e96341d586.png" alt="拖动文本效果.png"></p>
<h2 id="设置转场动画">设置转场动画</h2><p>如果在要把两个视频相连的话，可能需要设置转场动画。</p>
<p>将一个轨道上的两个视频重叠，重叠的部分就会变成紫色的沙漏形状。右键点击这个沙漏，选择<strong>「属性」</strong>，就可以设置转场动画了。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-96f911d9e8ea49eb.png" alt="转场动画.png"></p>
<h2 id="视频输出">视频输出</h2><p>最后就是进行视频输出了，也就是将剪辑好的视频按照一定的格式保存到本地。</p>
<p>Shutcut没有按照素材来源自动选择参数的功能（还是说我没发现？），需要手动选择参数。</p>
<p>在工具栏上选择<strong>「输出」</strong>功能（图标是一个光盘💿），打开输出界面。来源选择<strong>时间线</strong>，硬件编码器推荐不要勾选。勾选了硬件编码器的话，如果你的显卡支持硬件编码，导出会比较快，但是视频质量低于不使用硬件编码。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-ed23a4a2fa304ed3.png" alt="输出.png"></p>
<p>左边的列表是常见的视频编码和参数选择，如果对编码器比较懂的话，还可以点<strong>高级</strong>自己设置。如果对视频编码不太懂的话，这里推荐几个选项。</p>
<ol>
<li><p>内建里面的「H.264 High Profile」，这个导出以后是「.mp4」格式，兼容性较好。</p>
</li>
<li><p>内建里面的「HEVC Main Profile」，这个导出以后也是「.MP4」文件。HEVC也叫H.265，压缩率比H.264高一些，但是个别老一点的设备可能不兼容。</p>
</li>
</ol>
<p>选择格式之后，点击<strong>「输出文件」</strong>，选择保存位置。</p>
<p>确定后，在界面最右边的任务里面会显示进度，泡杯茶耐心等待吧。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-42dba97cbefde807.png" alt="漫长的进度条.png"></p>
]]></content>
    <summary type="html">
    <![CDATA[<p>最近想剪辑一下教学视频，想着能不用盗版尽量不用盗版，况且自己的需求并不复杂，又不是剪辑电影电视剧了，就没有下载那几个大牌的剪辑软件。</p>
<p>简单研究了一下免费的剪辑软件，最后选择了Shutcut。这是一个开源的免费软件，官网地址是<a href="https://shotcut.org/" target="_blank" rel="noopener">https://shotcut.org/</a>。 官网进去是英文版的，不要恐慌，软件下载下来界面有中文版。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-c9cde800af774a25.png" alt="Shotcut软件的界面.png"></p>
<p>下面大概说一下这个软件怎么使用。</p>
<h2 id="导入素材，建立时间线">导入素材，建立时间线</h2><ol>
<li><p>将需要剪辑的素材拖动到「播放列表」区域，将素材导入到软件。</p>
</li>
<li><p>点击时间线下面的「三横线符号」，打开附加操作菜单，在里面选择添加视频轨道，根据需要可以再添加音频轨道或多个视频轨道。</p>
</li>
</ol>]]>
    
    </summary>
    
      <category term="视频剪辑" scheme="https://lvxublog.com/tags/%E8%A7%86%E9%A2%91%E5%89%AA%E8%BE%91/"/>
    
      <category term="Shotcut" scheme="https://lvxublog.com/tags/Shotcut/"/>
    
      <category term="网络" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[那些年被抛弃的免费剪辑软件]]></title>
    <link href="https://lvxublog.com/2020/04/03/%E9%82%A3%E4%BA%9B%E5%B9%B4%E8%A2%AB%E6%8A%9B%E5%BC%83%E7%9A%84%E5%85%8D%E8%B4%B9%E5%89%AA%E8%BE%91%E8%BD%AF%E4%BB%B6/"/>
    <id>https://lvxublog.com/2020/04/03/那些年被抛弃的免费剪辑软件/</id>
    <published>2020-04-03T14:36:11.000Z</published>
    <updated>2020-04-24T06:17:02.000Z</updated>
    <content type="html"><![CDATA[<p>最近想剪辑一下教学视频，想着能不用盗版尽量不用盗版，况且自己的需求并不复杂，又不是剪辑电影电视剧了，就没有下载那几个大牌的剪辑软件。</p>
<p>简单研究了一下免费的剪辑软件，最后选择了Shutcut。</p>
<p>Shutcut的事情另外一篇文章里会说<a href="http://lvxu.site/2020/04/03/%E5%85%8D%E8%B4%B9%E5%BC%80%E6%BA%90%E5%89%AA%E8%BE%91%E8%BD%AF%E4%BB%B6Shotcut%E6%8E%A8%E8%8D%90%E5%92%8C%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/" target="_blank" rel="noopener">另外一篇文章里会说</a>，在这主要说说我试用了，但是没有选用的剪辑软件的存在问题。</p>
<a id="more"></a>
<h4 id="视频编辑王：">视频编辑王：</h4><p>没有找到怎么调整画中画的位置（也许是我不会用？），而且免费版不能导出1080P，导出后的视频也有水印。<br><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-92d2b7ff2873ca53.png" alt="免费版无法导出1080P且有水印"></p>
<h4 id="爱剪辑">爱剪辑</h4><p>爱剪辑导出的时候会强制添加片头片尾，所以在网上名气很大，尤其是在某个特定领域的视频。</p>
<p>试了一下爱剪辑，发现这个软件都没有时间轴，其实就是一个加转场效果和背景音乐的工具。那我还不如直接用windows10自带的「视频编辑器」了。</p>
<p>而且这个软件现在坑了，剪辑完了导出的时候问你要9.9。虽然钱不多吧，但是这样之前不说，剪辑完了要钱，就像是敲诈勒索一样，感觉像吃了一坨Shi。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-dd67bd25ada15005.jpg" alt="爱剪辑要钱界面"></p>
<h4 id="视频编辑器">视频编辑器</h4><p>视频编辑器是Windows10自带的视频编辑软件，可以连接视频，添加背景音乐，添加一些动作，功能过于简单。</p>
<p>适合把照片导出成视频。实际上这个软件会自动把你电脑里相似的照片制作成视频，有点类似谷歌照片的功能。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-9feded2e23b1f31c.png" alt="Windows10视频编辑器.png"></p>
<h4 id="OpenShot">OpenShot</h4><p>在开源剪辑界名气也不小，不知道为什么，在我的Windows10系统上始终无法正常运行，下了32位版和64位版都不行，最后只能放弃了。<br><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-0a01894beb4e87c1.png" alt="image"></p>
]]></content>
    <summary type="html">
    <![CDATA[<p>最近想剪辑一下教学视频，想着能不用盗版尽量不用盗版，况且自己的需求并不复杂，又不是剪辑电影电视剧了，就没有下载那几个大牌的剪辑软件。</p>
<p>简单研究了一下免费的剪辑软件，最后选择了Shutcut。</p>
<p>Shutcut的事情另外一篇文章里会说<a href="http://lvxu.site/2020/04/03/%E5%85%8D%E8%B4%B9%E5%BC%80%E6%BA%90%E5%89%AA%E8%BE%91%E8%BD%AF%E4%BB%B6Shotcut%E6%8E%A8%E8%8D%90%E5%92%8C%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/" target="_blank" rel="noopener">另外一篇文章里会说</a>，在这主要说说我试用了，但是没有选用的剪辑软件的存在问题。</p>]]>
    
    </summary>
    
      <category term="网络" scheme="https://lvxublog.com/tags/%E7%BD%91%E7%BB%9C/"/>
    
      <category term="视频剪辑" scheme="https://lvxublog.com/tags/%E8%A7%86%E9%A2%91%E5%89%AA%E8%BE%91/"/>
    
      <category term="网络" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[为Win10的UWP应用使用设置代理]]></title>
    <link href="https://lvxublog.com/2020/04/01/%E4%B8%BAWin10%E7%9A%84UWP%E5%BA%94%E7%94%A8%E4%BD%BF%E7%94%A8%E8%AE%BE%E7%BD%AE%E4%BB%A3%E7%90%86/"/>
    <id>https://lvxublog.com/2020/04/01/为Win10的UWP应用使用设置代理/</id>
    <published>2020-04-01T12:51:00.000Z</published>
    <updated>2022-07-05T07:51:16.138Z</updated>
    <content type="html"><![CDATA[<p>Win 10 的 UWP应用（应用商店下载的APP，如OneDrive、我的世界基岩版等），默认是不走代理的（沙盒的网络隔离特性：禁止APP访问<code>localhost</code> ）。</p>
<p>网上有很多解决此类问题的方法，要不就是使用 <code>Fiddler</code> 软件进行设置，要不就是使用<code>CheckNetIsolation</code>命令来解除限制，但是需要通过注册表来获取应用的SID，都比较麻烦。</p>
<p>其实有一个办法，不需要下载软件，也不需要打开注册表。</p>
<h2 id="解除限制的方法">解除限制的方法</h2><p>先获取需要走代理的APP的<strong>程序包名称</strong>。然后使用<code>CheckNetIsolation</code>命令解除该APP的 网络隔离。</p>
<a id="more"></a>
<h3 id="第一步：获取名称">第一步：获取名称</h3><p>按<code>Win</code>+<code>R</code>，在<code>打开(O)</code>后面输入：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">C:\Users\%username%\AppData\Local\Packages</span><br></pre></td></tr></table></figure>
<p>打开后能看到的每一个文件夹就代表一个UWP程序包，文件夹的名称就是程序包的名称。</p>
<p>例如：<code>Microsoft.Office.OneNote_8wekyb3d8bbwe</code></p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-ebf5ce7e7d91510c.png" alt="Package列表"></p>
<h3 id="解除限制">解除限制</h3><p>解除限制使用的是<code>CheckNetIsolation</code>命令。该命令的语法是：</p>
<figure class="highlight plain"><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">CheckNetIsolation LoopbackExempt [operation] [-n=] [-p=]</span><br><span class="line">   操作列表:</span><br><span class="line">       -a  -  向环回免除列表中添加 AppContainer 或程序包系列。</span><br><span class="line">       -d  -  从环回免除列表中删除 AppContainer 或程序包系列。</span><br><span class="line">       -c  -  清除环回免除的 AppContainer 和程序包系列的列表。</span><br><span class="line">       -s  -  显示环回免除的 AppContainer 和程序包系列的列表。</span><br><span class="line"></span><br><span class="line">   参数列表:</span><br><span class="line">       -n= - AppContainer 名称或程序包系列名称。</span><br><span class="line">       -p= - AppContainer 或程序包系列安全标识符(SID)。</span><br><span class="line">       -?  - 显示 LoopbackExempt 模块的此帮助消息。</span><br></pre></td></tr></table></figure>
<p>以OneNote为例，在命令行里输入：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">CheckNetIsolation.exe LoopbackExempt -a -n=&quot;Microsoft.Office.OneNote_8wekyb3d8bbwe&quot;</span><br></pre></td></tr></table></figure>
<p>命令执行后，系统会提示<code>完成</code>，该UWP软件无法访问<code>localhost</code>的限制已经解除</p>
<h3 id="设置全局代理">设置全局代理</h3><p>在<code>Proxifier</code>软件里配置全局代理。</p>
<p>先在菜单栏的<code>Profile</code> / <code>Proxy Servers</code> 里设置你的代理地址。</p>
<p>然后在<code>Profile</code> / <code>Proxification Rules</code> 里面进行配置，把你需要代理的软件配置一个规则。</p>
<p>或者也可以直接把 <code>Default</code> 配置为走代理，然后在代理软件里通过PAC功能或者路由规则来配置走代理和直连。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/49719-c1c352f9444c0688.png" alt="OneNote已经通过代理进行连接"></p>
]]></content>
    <summary type="html">
    <![CDATA[<p>Win 10 的 UWP应用（应用商店下载的APP，如OneDrive、我的世界基岩版等），默认是不走代理的（沙盒的网络隔离特性：禁止APP访问<code>localhost</code> ）。</p>
<p>网上有很多解决此类问题的方法，要不就是使用 <code>Fiddler</code> 软件进行设置，要不就是使用<code>CheckNetIsolation</code>命令来解除限制，但是需要通过注册表来获取应用的SID，都比较麻烦。</p>
<p>其实有一个办法，不需要下载软件，也不需要打开注册表。</p>
<h2 id="解除限制的方法">解除限制的方法</h2><p>先获取需要走代理的APP的<strong>程序包名称</strong>。然后使用<code>CheckNetIsolation</code>命令解除该APP的 网络隔离。</p>]]>
    
    </summary>
    
      <category term="网络" scheme="https://lvxublog.com/tags/%E7%BD%91%E7%BB%9C/"/>
    
      <category term="UWP软件" scheme="https://lvxublog.com/tags/UWP%E8%BD%AF%E4%BB%B6/"/>
    
      <category term="代理" scheme="https://lvxublog.com/tags/%E4%BB%A3%E7%90%86/"/>
    
      <category term="网络" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[Keepass使用安全桌面登录系统白屏问题]]></title>
    <link href="https://lvxublog.com/2020/03/01/Keepass%E4%BD%BF%E7%94%A8%E5%AE%89%E5%85%A8%E6%A1%8C%E9%9D%A2%E7%99%BB%E5%BD%95%E7%B3%BB%E7%BB%9F%E7%99%BD%E5%B1%8F%E9%97%AE%E9%A2%98/"/>
    <id>https://lvxublog.com/2020/03/01/Keepass使用安全桌面登录系统白屏问题/</id>
    <published>2020-03-01T15:15:11.000Z</published>
    <updated>2020-03-01T15:20:23.000Z</updated>
    <content type="html"><![CDATA[<h2 id="问题的起因">问题的起因</h2><p>Windows 10 Version 1903 以上，安装了更新KB4515384的系统，如果在使用Keepass时打开了「在安全桌面输入管理密钥」的话，启动Keepass，做任何操作，都会使电脑屏幕显示纯色背景（取决于你系统的主题，可能是白色或者黄色等颜色）和你的鼠标。此时即使打开任务管理器再关闭Keepass或重启Explorer都无法解决。</p>
<p>该问题在v1909系统中仍然存在。</p>
<h2 id="解决方案">解决方案</h2><h3 id="卸载KB4515384">卸载KB4515384</h3><p>V2EX网友反应，卸载更新KB4515384可以解决（<a href="https://www.v2ex.com/t/601017" target="_blank" rel="noopener">Keepass 用户请谨慎安装 KB4515384</a>），但是笔者不建议这样做。卸载系统更新可能带来无法预料的安全问题。</p>
<h3 id="停用_Keepass_的安全登录功能">停用 Keepass 的安全登录功能</h3><p>除了卸载更新之外，停用Keepass的「在安全桌面输入管理密钥」功能也可以解决白屏问题。</p>
<p>但是麻烦在于，此时无法进入 Keepass 的更改设置。为了解决这一矛盾，做如下操作可以在不打开软件的情况下修改该项配置。</p>
<p>打开文件夹<code>C:\Users\[UserName]\AppData\Roaming\KeePass</code>，用文本编辑软件打开文件<code>KeePass.config.xml</code>，并在其中找到<code>&lt;MasterKeyOnSecureDesktop&gt;true&lt;/MasterKeyOnSecureDesktop</code>，将其中的<code>true</code>改为<code>false</code>并保存。</p>
<p>再打开Keepass，「在安全桌面输入管理密钥」功能已经关闭。</p>
<p>还是希望微软或者Keepass尽快修正这个问题吧。</p>
]]></content>
    <summary type="html">
    <![CDATA[<h2 id="问题的起因">问题的起因</h2><p>Windows 10 Version 1903 以上，安装了更新KB4515384的系统，如果在使用Keepass时打开了「在安全桌面输入管理密钥」的话，启动Keepass，做任何操作，都会使电脑屏幕显示纯色背景（取决于你系]]>
    </summary>
    
      <category term="网络" scheme="https://lvxublog.com/tags/%E7%BD%91%E7%BB%9C/"/>
    
      <category term="Keepass" scheme="https://lvxublog.com/tags/Keepass/"/>
    
      <category term="网络" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[中国传统历法-干支日速算问题]]></title>
    <link href="https://lvxublog.com/2020/03/01/%E4%B8%AD%E5%9B%BD%E4%BC%A0%E7%BB%9F%E5%8E%86%E6%B3%95-%E5%B9%B2%E6%94%AF%E6%97%A5%E9%80%9F%E7%AE%97%E9%97%AE%E9%A2%98/"/>
    <id>https://lvxublog.com/2020/03/01/中国传统历法-干支日速算问题/</id>
    <published>2020-03-01T13:24:39.000Z</published>
    <updated>2020-03-01T13:30:48.000Z</updated>
    <content type="html"><![CDATA[<p>之前那篇<a href="http://lvxu.site/2015/04/08/%E4%B8%AD%E5%9B%BD%E4%BC%A0%E7%BB%9F%E5%8E%86%E6%B3%95/" target="_blank" rel="noopener">中国传统历法</a>发出后，有人问我关于干支日速算的问题。</p>
<blockquote>
<p>吕老师您好！看了您的一篇历法文章 …… 我正在研究干支记日，想请教现在流行的口诀（乘五除四九加日……）为什么要事先用年数减去1900呢。</p>
</blockquote>
<p>在此统一做一个解答。</p>
<a id="more"></a>
<p>本文同时发布在<a href="http://lvxu.site/2020/03/01/中国传统历法-干支日速算问题" target="_blank" rel="noopener">我的个人博客</a>和<a href="https://www.jianshu.com/p/57570f3bd8a0" target="_blank" rel="noopener">简书</a> 上。</p>
<h2 id="干支日速算口诀">干支日速算口诀</h2><p>网上流传的口诀是这样的：</p>
<blockquote>
<p>乘五除四九加日，<br>双月间隔三十天，<br>一二自加整少一，<br>三五七八十尾前。</p>
</blockquote>
<h2 id="口诀的解释">口诀的解释</h2><p>这个计算法，实际上就是找一个已知干支日的具体日期，然后算循环。</p>
<ol>
<li><p>1900年1月1日是甲戌日，干支序数为11（假设一个1月0日，干支为序号10，方便计算，这样1月X日的干支序号就是X+10）。</p>
</li>
<li><p>乘五除四是因为一年365天，一年干支差5天，算上闰年每4年多差一天。这样算下来，就是当年1月1日和1900年1月1日干支的差值。需要注意的是，闰年润在2月，闰年当年的1月1日并不差闰年当年那一天，所以如果恰好除尽的话应该再减1。</p>
</li>
<li><p>得到当年1月1日干支后，再算当前月1日和1月1日差几天。把当月之前的月份天数相加即可，如2月1日和1月1日差31天，4月1日和1月1日差（31＋28＋31）天，除60取余为30天。6月1日和1月1日差31＋28＋31＋30＋31＋30天，相当于差1天。这就是所谓调整系数。要注意闰年2月多一天，当年调整系数都不一样。</p>
</li>
</ol>
<ol>
<li>得到当月1日的干支数，加上当天天数，就是当天干支数了。</li>
</ol>
<p>我的公式：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">10+（Y-1900）÷4❨取整，如除尽则再减1❩+（Y-1900）×5+月份调整系数+日期</span><br></pre></td></tr></table></figure>
<p>得到的数字除60取余就是干支序号。</p>
<p>其实就是<strong>(基准干支序数+闰年差值+基本年初差值+月初差值+日期)/60</strong> 再<strong>取余数</strong>。</p>
<p>明白了这个道理，完全可以自己定义一个新的口诀，比如2000年1月1日是戊午日（干支序号55），以此为起点可以制定以下公式：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">54+（Y-2000）÷4❨取整❩+（Y-2000）×5+月份调整系数+日期</span><br></pre></td></tr></table></figure>
<p>这个公式比之前那个公式优美的地方在于2000年本身是闰年，算闰年的时候不必「除尽再减1」了。而且计算量也小。</p>
<h2 id="用程序计算干支日">用程序计算干支日</h2><p>其实前面的公式那么复杂，又是平年闰年，又是调整系数的，只是因为人脑的计算力有限，无法直接算出两个日期之间相差多少天。如果用程序计算，两个日期之间的差值完全可以直接算出来，再加上基准日期干支，得到的数字除以60再取余，就是当前日期干支了。</p>
<p>用Excel来尝试计算：</p>
<p>在A1单元格里输入「2000/1/1」，在B1单元格里输入「1900/1/1」，C1单元格里输入公式<code>=A1-B1</code>，在A4单元格里输入公式<code>=MOD(C1+11,60)</code>，得出当日干支序号为<strong>56</strong>，即<strong>己未日</strong>。</p>
<p>尴尬的事情发生了，当天明明是<strong>戊午日</strong>，干支序号是<strong>55</strong>。公式应该是没有问题的为什么结果差了一天？</p>
<p>原来Excel当初为了兼容一个古老的BUG，将1900年也当成了闰年，导致计算日期差值的时候，用1900年3月之后的日期，减1900年2月底之前的日期，都会有1天的差值。</p>
<p>明白了这个原因，只要重新设置一个起点就好了。1900年4月20日为葵亥日，干支序数为60，也可以理解为<strong>0</strong>。</p>
<p>将B1单元格的日期改为「1900/4/20」，将A4单元格里的公式改为<code>=MOD(C1,60)</code>，即可得到正确的干支序号55，即戊午日。</p>
<h2 id="干支序数">干支序数</h2><p>十天干：</p>
<blockquote>
<p>1 甲  2 乙  3 丙  4 丁  5 戊  6 己  7 庚  8 辛  9 壬  10 癸</p>
</blockquote>
<p>十二地支：</p>
<blockquote>
<p>1 子  2 丑  3 寅  4 卯  5 辰  6 巳 7 午  8 未  9 申  10 酉  11 戌  12 亥</p>
</blockquote>
<p>干支序数：</p>
<blockquote>
<p>01 甲子    11 甲戌    21 甲申    31 甲午    41 甲辰    51 甲寅<br>02 乙丑    12 乙亥    22 乙酉    32 乙未    42 乙巳    52 乙卯<br>03 丙寅    13 丙子    23 丙戌    33 丙申    43 丙午    53 丙辰<br>04 丁卯    14 丁丑    24 丁亥    34 丁酉    44 丁未    54 丁巳<br>05 戊辰    15 戊寅    25 戊子    35 戊戌    45 戊申    55 戊午<br>06 己巳    16 己卯    26 己丑    36 己亥    46 己酉    56 己未<br>07 庚午    17 庚辰    27 庚寅    37 庚子    47 庚戌    57 庚申<br>08 辛未    18 辛巳    28 辛卯    38 辛丑    48 辛亥    58 辛酉<br>09 壬申    19 壬午    29 壬辰    39 壬寅    49 壬子    59 壬戌<br>10 癸酉    20 癸未    30 癸巳    40 癸卯    50 癸丑    60 癸亥</p>
</blockquote>
<h2 id="月份调整系数">月份调整系数</h2><h3 id="平年月份调整系数：">平年月份调整系数：</h3><table>
<thead>
<tr>
<th style="text-align:center">月份</th>
<th style="text-align:center">调整系数</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1月</td>
<td style="text-align:center">0</td>
</tr>
<tr>
<td style="text-align:center">2月</td>
<td style="text-align:center">31</td>
</tr>
<tr>
<td style="text-align:center">3月</td>
<td style="text-align:center">59</td>
</tr>
<tr>
<td style="text-align:center">4月</td>
<td style="text-align:center">30</td>
</tr>
<tr>
<td style="text-align:center">5月</td>
<td style="text-align:center">0</td>
</tr>
<tr>
<td style="text-align:center">6月</td>
<td style="text-align:center">31</td>
</tr>
<tr>
<td style="text-align:center">7月</td>
<td style="text-align:center">1</td>
</tr>
<tr>
<td style="text-align:center">8月</td>
<td style="text-align:center">32</td>
</tr>
<tr>
<td style="text-align:center">9月</td>
<td style="text-align:center">3</td>
</tr>
<tr>
<td style="text-align:center">10月</td>
<td style="text-align:center">33</td>
</tr>
<tr>
<td style="text-align:center">11月</td>
<td style="text-align:center">4</td>
</tr>
<tr>
<td style="text-align:center">12月</td>
<td style="text-align:center">34</td>
</tr>
</tbody>
</table>
<h3 id="闰年月份调整系数：">闰年月份调整系数：</h3><table>
<thead>
<tr>
<th style="text-align:center">月份</th>
<th style="text-align:center">调整系数</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1月</td>
<td style="text-align:center">0</td>
</tr>
<tr>
<td style="text-align:center">2月</td>
<td style="text-align:center">31</td>
</tr>
<tr>
<td style="text-align:center">3月</td>
<td style="text-align:center">0</td>
</tr>
<tr>
<td style="text-align:center">4月</td>
<td style="text-align:center">31</td>
</tr>
<tr>
<td style="text-align:center">5月</td>
<td style="text-align:center">1</td>
</tr>
<tr>
<td style="text-align:center">6月</td>
<td style="text-align:center">32</td>
</tr>
<tr>
<td style="text-align:center">7月</td>
<td style="text-align:center">2</td>
</tr>
<tr>
<td style="text-align:center">8月</td>
<td style="text-align:center">32</td>
</tr>
<tr>
<td style="text-align:center">9月</td>
<td style="text-align:center">4</td>
</tr>
<tr>
<td style="text-align:center">10月</td>
<td style="text-align:center">34</td>
</tr>
<tr>
<td style="text-align:center">11月</td>
<td style="text-align:center">5</td>
</tr>
<tr>
<td style="text-align:center">12月</td>
<td style="text-align:center">35</td>
</tr>
</tbody>
</table>
<h2 id="参考文献">参考文献</h2><ol>
<li><a href="https://www.zhihu.com/question/31361968" target="_blank" rel="noopener">知乎：日干支究竟如何与公历日期相互转换？</a></li>
<li><a href="https://zhuanlan.zhihu.com/p/29993252" target="_blank" rel="noopener">知乎：也许是最冷的电脑冷知识：1900年闰年Bug</a></li>
<li><a href="https://answers.microsoft.com/zh-hans/msoffice/forum/all/excel/ea06ca5b-ad8d-4cea-9ff0-5c93fb32b2a9?auth=1" target="_blank" rel="noopener">微软社区：Excel 公历1900年2月总天数的错误</a></li>
</ol>
]]></content>
    <summary type="html">
    <![CDATA[<p>之前那篇<a href="http://lvxu.site/2015/04/08/%E4%B8%AD%E5%9B%BD%E4%BC%A0%E7%BB%9F%E5%8E%86%E6%B3%95/" target="_blank" rel="noopener">中国传统历法</a>发出后，有人问我关于干支日速算的问题。</p>
<blockquote>
<p>吕老师您好！看了您的一篇历法文章 …… 我正在研究干支记日，想请教现在流行的口诀（乘五除四九加日……）为什么要事先用年数减去1900呢。</p>
</blockquote>
<p>在此统一做一个解答。</p>]]>
    
    </summary>
    
      <category term="文化" scheme="https://lvxublog.com/tags/%E6%96%87%E5%8C%96/"/>
    
      <category term="历法" scheme="https://lvxublog.com/tags/%E5%8E%86%E6%B3%95/"/>
    
      <category term="杂谈" scheme="https://lvxublog.com/categories/%E6%9D%82%E8%B0%88/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[中国传统历法]]></title>
    <link href="https://lvxublog.com/2015/04/08/%E4%B8%AD%E5%9B%BD%E4%BC%A0%E7%BB%9F%E5%8E%86%E6%B3%95/"/>
    <id>https://lvxublog.com/2015/04/08/中国传统历法/</id>
    <published>2015-04-08T03:30:22.000Z</published>
    <updated>2022-07-10T13:09:56.120Z</updated>
    <content type="html"><![CDATA[<blockquote>
<p>本文原本发表在<a href="http://lvxu1987.sinaapp.com/archives/120" target="_blank" rel="noopener">笔者之前的博客</a> 和百度汉服吧上，近日得闲，把原文用 Markdown 重写，重新发表在现在的博客上。文章在本博客重新发布时，笔者年纪长了两岁，心态也有所变化，因此观点上，遣词造句上，都有所更改之处</p>
<p>因原文写于 2012 年春节前夕，因此，文中所说「今年」如无另行说明，都是指 2012 年。</p>
</blockquote>
<p>以下原文</p>
<hr>
<p>早就想写一写中国的传统历法（即俗称之阴历、农历）,不过限于在下学识浅薄，文笔疏漏，迟迟没有动笔，近日时间空闲，方得动笔，若有不当之处，还请诸位指正。</p>
<h2 id="中国传统历法的基本概念">中国传统历法的基本概念</h2><h3 id="常见的历法名词">常见的历法名词</h3><p>让我们首先从一组名词辨析开始。</p>
<ol>
<li><p>公历、阳历、洋历、西历、耶历、格里高利历</p>
</li>
<li><p>农历、旧历、黄历、皇历、阴历、夏历、周历</p>
</li>
</ol>
<p>先说第一组吧。大概多数朋友都会认为第一种说都是一个意思，其实是有区别的，关系如下：</p>
<p><strong> 阳历＞（西历＝耶历＝洋历=格里高利历）≈公历。 </strong></p>
<p>阳历的阳字，指的是太阳。所以凡是按照地球绕太阳公转计算历法的都是阳历，故此将阳历等同与现在世界通行的历法并不妥当，现在世界通行的历法叫做格里高利历，只是阳历的一种，我们生活中称其为”阳历”或为洋历之误，家里有老人的应该听说过”洋车”、”洋火”、”洋碱”之类的说法，凡从西方传来的东西就成为”洋”，西方传来的历法也称之为”洋历”，故称其为”阳历”或为”洋历”之误。</p>
<a id="more"></a>
<p>我认为称其为”西历”、”耶历”更为妥当，事实上，港台就将其成为西元。现在也将西历称之为公历，这是因为民国时的思潮是全面否定中国的传统文化，故此民国政府废除了传统的历法，以西方的格里高利历为官方历法，共产党建国后也继承了这个规定，所以称之为”公历”，意为官方历法之意。</p>
<p>我认为，规定格里高利历为官方历法，是世界潮流的一种承认，是为了方便国际交流。但其用在中国，亦有其弊端。首先，西历以耶稣诞生为 1 年，于中国来说，毫无意义，以一个毫无意义之年为一年，此一不妥。其次，该历法的元年距今太近，中国有上千年历史处于西元前，使用上十分不方便，此二不妥。再次，西历没有西元0年，使得计算上不很方便，此三不妥。因此，认识和了解中国的传统历法就很有必要了。那么就让我们从辨析第二组词汇开始。</p>
<p>大部分人大概认为农历＝阴历，黄历、皇历、旧历都是其过去的称呼，至于夏历、周历大概就是一头雾水了。其实我认为这几个词的关系是：</p>
<p><strong>农历=旧历=黄历=皇历≠阴历≠夏历≠周历。</strong></p>
<p>我们通常称中国的传统历法为”农历“，但是稍有农业经验的人都知道，所谓农历和农时并无什么关系，农时和阳历的关系更加密切。阴历是以月亮绕地球公转为依据，以月相圆缺为依据，阳历以地球公转为依据，而四季变化是和地球公转有关，因此农时和阳历关系更大，和阴历关系不大，故称之为农历其实并不妥当。</p>
<p>农历的说法，是 49 年建国后，政府以格里高利历为公历，但由于民间还大量使用传统的历法，一时难以废除，继续叫皇历、黄历又有”四旧“之嫌，便将其命名为农历，与公历并行。</p>
<p>那么什么是夏历、周历呢？故名思议，夏历就是夏朝的历法，通行于自汉代起到今天，在西历没有传入之前称之为夏正，周历为周朝的历法，通行于周代，亦称周正，武则天当政时曾短暂的改用周正。</p>
<p>周历/周正和夏历/夏正的区别主要是岁首的定义不一样。所谓岁首，就是哪个月是一月的问题。大家知道，古时候算命看八字，所谓八字就是把年月日时用天干地支来表示。所以农历的月除了能用数字表示之外，还能用十二地支来表示。子月就是冬至所在的月，次月为丑月，再次月为寅月。（这里算月份时不含闰月，闰月没有自己独立的地支。）</p>
<p>夏正以<strong>寅月</strong>为一月，而周正以<strong>子月</strong>为一月。此外还有殷正，以<strong>丑月</strong>为一月。</p>
<h3 id="夏历的基本特点">夏历的基本特点</h3><p>很多人认为中国的传统历法夏历是一种阴历，因而称之为阴历以和西方的阳历相对，其实不然，中国的传统历法是一种综合了阴历和阳历的特殊的<strong>阴阳历</strong>，同时考虑地月公转。</p>
<p>先说阴历的部分。夏历记月即为阴历，以朔日（即完全没有月亮的时候）为月首，以望日（即月圆之时）为月中，以下一个朔日的前一天为月末。月缺圆一次为一月，一年 12 个月。月份也分大小月，大月 3 0天，小月 29 天，去年（辛卯年 / 二〇一一年）的 12 月即为小月，因此就没有大年三十。</p>
<p>西方的历法中大小月为君王人为规定，那么夏历中的大小月又是怎么规定的呢？答案是老天爷规定的。夏历严格按照天象推算，是现存世界上唯一的完全按照天象来推算的历法。朔望月的时长是 29 日 12 小时 44 分 3 秒（即 29.5366 日），夏历的大小月并非绝对的大小月交替，如果这个月到了 29 的时候，第二天就是朔日，那么这个月就是小月，如果这个月到了 30 ，第二天是朔日，那么这个月是大月。<br>也就是说，朔日时刻（即完全没有月亮的时刻）所在的必为初一，不论朔日时刻是在几点。比如说，如果在朔日时刻出现在29号后一天和后两天交界处，若朔日时刻在 23：59 ，那么 29 号后一天是初一，若朔日时刻在 0：01 ，那么 29 号后一天没有朔日时刻，为 30 ， 29 号后两天有朔日时刻，为初一。</p>
<p>再说阳历的部分。中国传统历法中阳历的部分其实就是 24 节气。一般人有个印象说 24 节气与西历大致相合，但是又感觉奇怪，西历明明是民国以后才传过来的，为什么中国用了几千年的 24 节气会与其相合呢？其实这就是因为 24 节气就是中国传统历法中的阳历。</p>
<p>配合阳历有一套专用的纪年方法就是干支纪年记月记日法。如果用干支表示人的出生年月日时就是传说中的生辰八字。譬如在下的生辰八字是”丙寅年辛丑月戊午日戊午时”。</p>
<p>干支历的岁首为立春，两个立春之间为一个回归年。比如西历 1986 年 2 月 4 日为立春日，按夏历为十二月（大）廿六日，按习俗还没有过年，但是按干支历已经是丙寅年的岁首了，若严格说，论属相应属虎而不是属兔。记月则以节气为分割，比如辛丑月的起点为小寒，终点为立春前一天。记日记时则 60 组干支循环。掐算干支有一个歌诀，不过我们不需要掌握，有需要的话手机里装个中华万年历之类的 App 就行了。</p>
<p>夏历是阴阳历的结合集中体现在<strong>闰月</strong>上。为了弥补回归年和 12 个朔望月的差别，夏历每过若干年就要闰月，所润的月叫润某月，比如今年壬辰龙年（ 2012 年 ），四月之后就有润四月。</p>
<p>那真正的阴历是什么样的呢？伊斯兰历就是一种完全的阴历，在中国也叫回历或回回历，这种历法完全以月相为准，每当新月出现时定为每月的一日， 12 个月为一年，不设闰月，闰年于第 12 个月后加一天（每 30 年中设 11 闰年），平均每年只有 354 天 8 小时 48 分，每隔 2.7 年和公历相差一个月（即 19 年差 7 个月），因此不分季节。所以伊斯兰世界过年的时候，时而在冬天，时而又在夏天。</p>
<h2 id="闰年与闰月">闰年与闰月</h2><h3 id="西历闰年">西历闰年</h3><p>大家都知道西历有闰年一说，每逢闰年，当月的 2 月就多一天，全年 366 天。那么闰年是几年几润呢？我猜这个问题不少人都会回答四年一润，其实不然。实际应该是<strong> 400 年 97 润</strong>，所以在计算闰年时，整百年必须被400整除才是闰年。</p>
<p>比如 2000 年可以被 400 整除，所以 2000 年是闰年，但是 1900 年虽然可以被4整除，但是不能被 400 整除，所以则不是闰年。那么有些人要问了， 1896 年是闰年， 1904 年是闰年，为什么 1900 年就不是闰年了呢？这里面还有一个小故事，叫消失的十天。 </p>
<p>西历历法上有十天的时间，没有任何人出生，没有任何人死亡，没有发生任何事，这就是西历 1582 年 10 月 5 日至 10 月 14 日。在 1582 年的日历上， 10 月 4 日之后就是 10 月 15 日。这中间的10天完全空过去了。</p>
<p>这要从现行西历格里高利历的前身儒略历说起。儒略历规定每四年一润，因此儒略历平均年长 365.25 天，而回归年长 365.2422 天。这看似不大的误差，积累到西元 16 世纪，已经差了 10 天。两分两至明显提前了。两分两至日期的变化影响到了耶稣复活日期的计算，因此教皇特别重视。在此情况下，教皇格列高里十三世于 1582 年宣布改历。先是一步到位把儒略历 1582 年 10 月 4 日的下一天定为格里历 10 月 15 日，中间跳过 10 天。同时修改了儒略历置闰法则。除了保留儒略历年数被 4 除尽的是闰年外。增加了被 100 除得尽而被 400 除不尽的则不是闰年的规定。这样的做法可在 400 年中减少 3 个闰年。在格里历里， 400 年中有 97 个闰年(每年 366 日)及 303 个平年(每年 365 日)，所以每年平均长 365.2425 日，与公转周期的 365.2422 日十分接近。可基本保证到公元 5000 年前误差不超过 1 天。这样我们计算，格里历每年误差 0.0003 天，1÷0.0003＝3333.33 年。也就是说现行西历的精确度为 3333.33 年。原来我们以为很精确的西历，精确度竟然只有 3333.33 年，可谓非常不精确了。根据这个精确度，我<strong>不负责任</strong>的推测在西元 4915 年左右的一个闰年会成为特别闰年，虽然符合计算公式，但是该年仍为平年，说不定就是 4916 年。</p>
<h3 id="夏历闰月">夏历闰月</h3><p>说完西历的闰年，再说说夏历的闰月。上之前说到夏历是一种阴阳历，同时考虑地球的公转和月球的公转。以一个朔望月为一个月，以 12 个朔望月为一年。一个朔望月为 29.5306 天， 12 个朔望月为 354.3672 天，这样的话 12 个朔望月就比一个回归年少 10.8750 天。古代的天文学家经过观测和计算，确定了 19 年 7 润的置润方法。这样 19 个回归年共有 365.2422×19＝6939.6018 天，而用置润之后，夏历 19 年共 29.5306×(12×19+7)＝6939.6910 天，相差 0.892 天。所润月份先后采用过置于年末、置于九月后等方法，后来采用较多的方法是”无中置润”法。其中的”中”指的是<strong>中气</strong>。</p>
<p>一般人只知道 24 节气，但实际上 24 节气又分为 12 节和 12 气。因为 12 气一般出现在月份中间，因此又叫中气。所以 12 节为清明、立夏、芒种、小暑、立秋、白露、寒露、立冬、大雪、小寒、立春、惊蛰。 12 气为春分、谷雨、小满、夏至、大暑、处暑、秋分、霜降、小雪、冬至、大寒雨水、春分。根据无中置润的规则，需要置润月的年份，将闰月置于第一个没有中气的月份。 </p>
<p><img src="https://cdn.jsdelivr.net/gh/lvxu1987/blogImages@main/img/v2-813c462f2715e3c9a71eb80c048a1725_b.gif" alt="12节和12气"></p>
<p>而目前使用的是一种更精确的置润方法，摒弃了 19 年 7 润的方法。根据紫金山天文台给出的我国编制方案是：</p>
<ol>
<li><p>计算采用北京时间为标准；</p>
</li>
<li><p>太阳和月亮位置的计算依据国际天文学联合会 (Internation Astronomical Union) 下属的基础天文标准评审委员会 (the Standards Of Fundamental Astronomical Reviewing Board) 推荐的天体位置归算标准模型；</p>
</li>
<li><p>朔所在日为月首；</p>
</li>
<li><p>冬至所在月为十一月；</p>
</li>
<li><p>如果从某个十一月开始到下一个十一月（不含）之间有 13 个朔望月，则取其中最先出现的一个不包含中气的月份为闰月；</p>
</li>
<li><p>十一月之后第 2 个（不计闰月）月份为起始月（正月）。 </p>
</li>
</ol>
<p>也就是说，首先以冬至为历法岁首，但是根据夏正寅月为正月的要求，冬至所在月为十一月。这一条要求是首要的要求，规定了一年的起点和终点。然后看两个十一月之间有几个月份，如果两个十一月之间有 11 个月份，那么这一年为平年，无需置润，即便这一年有某个月没有中气，也不置润。若两个十一月之间有 12 个月份，那么这一年为闰年，则取第一个没有中气的月份为闰月。 </p>
<p>比如西历 2011 年 12 月 22 日为冬至，那么取冬至所在朔望月为十一月，即西历 2011 年 11 月 25 日至 2011 年 12 月 24 日。下一个冬至为西历 2012 年 12 月 21 日，取冬至所在月为十一月，即西历 2012 年 12 月 13 日至 2013 年 1 月 11 日。两个十一月中间有 12 个朔望月，因此全年有 13 个月份，需要置润。夏历四月有一个节气立夏，有一个中气小满，而四月之后那个月只有一个节气芒种，而下一个中气落到了下下个月。因此四月后面的月份为润四月，闰四月之后的月份为五月。 </p>
<p>这样，现行的置润规定，基本排除了人为因素，而代之以天象决定。</p>
<h3 id="24节气的闰年问题">24节气的闰年问题</h3><p>可能有的人要问了，既然夏历是阴阳合历，那么其阳历的部分24节气有没有闰年的问题呢？一个冬至到下一个冬至什么时候是 365 天，什么时候是 366 天呢？笔者也曾为这个问题苦恼许久，遍阅资料而不得，终于发现这是一个伪命题。</p>
<p>所谓节气，指的是地球绕太阳运转的轨道分为 24 份，每一个分界点都精确到某一时刻，而不是某一天，这一时刻所在的天就是一个节气或者中气。比如冬至这一时刻落在的这一天就是冬至日，夏至这一时刻落在的这一天就是夏至日。但是由于一个回归年是 365.2422 天，所以每年冬至时刻都比前一年推迟 0.2422 天，直到将冬至时刻推迟到下一天，那么上一个冬至到这个以冬至之间就有 366 天。平均每 4.1288 年就会将冬至时刻推到下一天，从而自动闰年，完全不需要人工干预，可以一直运行到太阳系灭亡也不会有误差。 </p>
<p>由此可见，夏历的闰月方法几乎没有由人为规定的部分，完全由天象来决定。事实上，不仅闰月，岁首和月首都有天文依据。夏历为现在世界上仅存的完全由天象决定的历法。 </p>
<p>反观西历，岁首没有任何天文学意义， 2 月仅 28 天根本不合理， 7 月 8 月连续大月也完全是帝王意志，实际上除了 365 这个天数较为科学之外，实在没有什么科学之处。况且连这个 365 也不甚科学，其闰年之后的精确度仅能保证 3333.33 年。可笑很多人还以为西历比夏历精确科学。 </p>
<p>下次若再有人问起世界上最精确的历法是什么，我们可以骄傲的说，我们的夏历可以运行到太阳系灭亡，也不会有 1 天的误差！ </p>
<h2 id="夏历的连续数字纪年问题">夏历的连续数字纪年问题</h2><p>大家知道，中国的传统历法中，纪年是以干支纪年和年号纪年并行的，因此中国一直没有一个连续数字纪年的方法，尤其在西历传入中国后，很多人都意识到了这个问题，许多学者也想了很多办法。其中最出名的有两种纪年方法，一种是以孔子诞辰的年份为元年的孔子纪年法，另一种是以中华人文始祖黄帝即位建甲子之年为元年的黄帝纪年。这两种纪年方法还涉及当年保种保教之争，在此不再细表。</p>
<p>这两种纪年方法比之公历的以耶稣诞辰年份为元年的方法有很多的优势。首先，公历的元年对我国来说，毫无意义，而这两种纪年的元年都很有意义，一个是五帝之首中华人文始祖，一个是影响中华几千年的至圣先师。其次，公历的元年很晚，中国的历史有很长，以至于中国有很长一段历史都落在了公元前，包括了非常重要的春秋战国秦汉，再加上公历没有0年，使用起来很不方便，而黄帝纪年使中国全部历史都在元年之后，而孔子纪年也能保证大部分历史都在元年之后。</p>
<p>除了孔子纪年和黄帝纪年，尚有共和纪年（为周代之年号，非当今共和国）等说法不再详述。</p>
<p>可能有人认为夏历不必有独立的连续数字纪年办法，用公历年份指代夏历年份便是，比如2012年春节，2012年除夕等说法。笔者不禁要问，这2012年除夕到底是落在公历2012年内的那个除夕呢，还是与公历2012年大致重合的壬辰年的除夕呢？这可差了一年呢。又譬如夏历辛卯年腊月初十（公历2012年1月3日）究竟是2012年还是2011年呢？若能使用孔子纪年/皇帝纪年，便没有这个问题了，公历日期便以耶稣纪年，夏历日期以孔子纪年/黄帝纪年，就不会混淆了。</p>
<h3 id="孔子纪年">孔子纪年</h3><p>先说说孔子纪年，这也是近些年来呼声很大的一种纪年方法。使用孔子纪年，首先要明确孔子的生日，偏偏这又是一个有争议的地方。</p>
<p>据《春秋公羊传》、《春秋榖梁传》记载，应为鲁襄公二十一年（公元前552年）生，而据《史记》则为鲁襄公二十二年（公元前 551 年）所生。这个争议，古以有之。传统上采用《史记》一说，又取谷梁载 10 月庚子日，查此庚子日为周正十月二十一日（庚戌年乙酉月庚子日），儒略历前 551 年 10 月 4 日，夏历八月二十七日，现行阳历 9 月 28 日。现在台湾即以 9 月 28 日为教师节。</p>
<p>天文学上认为，「九月庚戌，朔，日有食之」是确实的，发生在儒略历前 552 年 8 月 20 日（合周正十月初一）；「十月，庚辰，朔，日有食之」则是误记，该日为儒略历前 552 年 9 月 19 日（合周历十一月初一）。依照「九月，庚戌，朔……十月，庚辰，朔」，在无闰月的情况下， 11 月不应该有庚子日；而谷梁传记载的 10 月庚子日为庚辰朔之后 20 日，即 10 月 21 日。若谷梁传与春秋同用殷正（同样以日食推之），则殷正 10 月 21 日应为周正 11 月 21 日，儒略历前 552 年 10 月 9 日，夏历 9 月 21 日，公历 10 月 3 日。</p>
<p>孔子纪年依据天文学相信了榖梁传的说法，即孔子生于公元前 552 年。孔子纪年即以该年为零年，前一年为前一年，后一年为一年，这样，孔元前孔元后的计算方法就统一了。<br>这样公元和孔元的换算方法就是”公元年份+552-1”之所以要减去1，就是因为公历没有0年，凡算公元前后年份所差年份，皆须减1年。</p>
<p>比如 1949 年为孔历 2500 年， 2012 年为孔历 2563 年。</p>
<p>简便起见，我们计算是可以把建国年份加上 2500 即为孔历年份。 2012 年建国 63 年，即为孔历 2563 年。</p>
<h3 id="黄帝纪年">黄帝纪年</h3><h4 id="黄帝纪年简介">黄帝纪年简介</h4><p>黄帝纪年是以黄帝即位之年为元年的一种纪念方法，是近年来呼声最大的基于中国传统文化的连续数字纪年方法，民国初年曾经由政府颁行实施过，也是截至目前唯一由政府颁行实施过的夏历连续纪年方法。</p>
<p>相传黄帝建国时，命大挠氏作<strong>甲乙丙丁戊己庚辛壬癸</strong>等十天干，<strong>子丑寅卯辰巳午未申酉戌亥</strong>等十二地支，相互配合使用记录年、月、日、时，六十年一甲子，这就是天干地支纪年法。由于干支纪年60年一轮回，无法独立使用，因此，后来也配合帝王年号纪年法。</p>
<h4 id="黄帝纪年的起点">黄帝纪年的起点</h4><p>但凡历法，都有一个起点，公历的起点是耶稣诞生之年。犹太教有从小割包皮的习惯，公元 1 年 1 月 1 日就是传说中耶稣割包皮的日子。不过后来证明，这个日子是一个传教士臆造的。也就是说，公历的起点（也叫历元）是一个传教士臆造的日子。可以说没有任何天文意义，也没有任何历史依据，只有宗教宣传效果。</p>
<p>那么黄帝纪年的起点或者叫历元是什么呢。相传黄帝建国的时候，发现某日既是冬至又是朔日，遂以该日为甲子年甲子月甲子日。也就是说，黄帝纪年的历元是冬至和朔日重合之日，同时也是黄帝即位之年，具有天文意义和历史意义。</p>
<h4 id="关于建子和建寅问题">关于建子和建寅问题</h4><p>在黄帝纪年的问题上，还有一个建子和建寅的问题。如果按建子说，今年（ 2012 年）是四七零九年，而按建寅说，今年则为四七一零年。而这两种计算方法，对于黄帝即位的时间并没有不同的认识，那么为什么年份会相差一年呢？</p>
<p>这要从中国传统历法中对于一年起点的不同规定说起了。传统上，对于一年的起点有三种规定，分别叫夏正、殷正、周正。夏正以寅月为一年的起点（寅月就是立春到惊蛰前一天的一个月）。殷正以丑月为一年的起点（丑月即小寒到立春前一天之间的一个月）。周正以子月为一年的起点（子月就是从大雪到小寒前一天的一个月）。如下图所示。</p>
<p><img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/夏正殷正周正.jpg" alt="夏正殷正周正"><br>要注意的是，这里的一个月是干支历的一个月，是以24节气为划分的，不是夏历的以月相划分的月，如下图。</p>
<p>!<img src="https://gitee.com/lvxu1987/bolgimage/raw/master/img/013112_1703_13.gif" alt="12节和12气"></p>
<p>周正的特点是更符合天文，因为冬至在天文上是一个特殊位置，太阳正好直射南回归线。在汉朝之前，周代使用周正。传说中的黄帝创立干支历就是用的周正。</p>
<p>而夏正的特点是更符合农时，一年的起点大致在春季，汉朝以后至今大多数时候使用夏正。</p>
<p>也就是说，黄帝创立干支历的时候，认为子月是一年的开始，因此是甲子年。而如果用今天的历法来看，因为寅月才是一年的起点，所以子月是上一年的，也就是甲子年的上一年，癸亥年。</p>
<p>这样一来，就出现的问题，本来以黄帝创立干支历的本意，其创立之年应该是甲子年，因为甲子是干支的六十种组合中的第一种。而如果按现在的历法，黄帝创立干支历之年反而成了癸亥年，是干支的六十种组合的最后一种，后一年才是甲子年。</p>
<p>因而，学界就有了两种观点，一种认为黄帝纪年只是干支历的数字化，并不是一种新的历法，当时之时应用当时之历，历史上使用周正，就因该以周正计算，历史上使用夏正，就应该以夏正计算，黄帝纪年的数字只是为干支纪年标上序号，而非一种新的历法。因此，在黄帝纪年的起点问题上，应该根据当时的规定，以子月为一年之首，把甲子年作为黄帝纪年的元年，这种观点，叫做”建子”。</p>
<p>而另一种观点则把黄帝纪年看作一种新的历法，认为是为了纪念黄帝而作，因此，以现今的历法反推回去，认为黄帝即位之年为癸亥年，并以此癸亥年为黄帝纪年的元年，这样，就比以甲子年作为纪年起点提前了一年，这种观点叫”建寅”。民国初年曾经使用过的黄帝纪年就是这种计算方法。</p>
<p>建子和建寅两种算法，得出的年份相差一年，若以建子计算，今年壬辰年（ 2012 年）为四七零九年，而以建寅计算，今年则为四七一零年。</p>
<p>这两种算法的背后，实际为两种不同的思想，建子是将干支历数字化，建寅则是为当今的历法建立一种数字纪年在一定程度上取代公历纪年尤其是在夏历上使用公历年份纪年的做法。</p>
<p>依笔者之见，建子恐怕更合理一些，但是由于建寅的算法在历史上曾经实际实施过，在国外研究中国历史的学者，也多有用这种方法纪年的，因此如果实际使用的话，反而是建寅的算法更合理一些。</p>
<h4 id="黄帝纪年、干支纪年和公元纪年的换算">黄帝纪年、干支纪年和公元纪年的换算</h4><p>干支分为十天干和十二地支。</p>
<p>十天干是：</p>
<blockquote>
<p>1 甲  2 乙  3 丙  4 丁  5 戊  6 己  7 庚  8 辛  9 壬  10 癸</p>
</blockquote>
<p>十二地支是：</p>
<blockquote>
<p>1 子  2 丑  3 寅  4 卯  5 辰  6 巳 7 午  8 未  9 申  10 酉  11 戌  12 亥</p>
</blockquote>
<p>公元纪年换算干支有非常麻烦的公式，而黄帝纪年换算干支则非常简单。因为黄帝纪年本来就是干支纪年的数字化，要想由黄帝纪年计算干支，只要除以 10 和 12 取余数就行了（如果以建寅计算，要先减去一，折算成建子计算的年份）。</p>
<p>比如今年是四七零九年（按建寅是四七一零年）， 4709 除以 10 等于 470 余 9 ， 9 对应的天干是壬； 4709 除以 12 得 392 余 5 ，而 5 对应的地支就是辰。结合起来，就可以得出今年是壬辰年。</p>
<p>从这种简单的计算方法，也可以看出黄帝纪年法和干支纪年的对应关系。</p>
<p>黄帝即位于公元前 2698 年，但是如果以公元年份指代夏历年份并采用建子规定的话，则为公元前二六九七年。所以，公元年份换算黄帝纪年年份直接在公元年份上加上 2697 年就可以了，如果按建寅规定，则加 2698 年。</p>
<p>例如今年是 2012 年， 2012+2697=4709，所以，今年为黄帝纪年四七零九年。（如果按建寅计算，则是  2012+2698=4710 。）</p>
<p>另外要注意的是，换算用的西历年份，是“用西历年份表示的夏历年份”，例如笔者生于西历1987年1月，但是如果要换算成黄帝纪年，就要用1986+2697=4683年。因为1987年1月还没有过年，仍是丙寅虎年。这一点必须注意。</p>
<h4 id="黄帝纪年不是一种新创立的纪年法">黄帝纪年不是一种新创立的纪年法</h4><p>很多人误以为黄帝纪年法是一种新创立的纪年法，是为了对抗公元纪年法而创立的，实际上这是一种错误的观点。且不论黄帝纪年是干支纪年数字化的这一事实，单单黄帝纪年本身，也已经诞生数千年了。</p>
<p>中国传统上是用皇帝年号配合干支来纪年的，但是在道教中，一直使用一种道历，其和黄帝纪年的建子算法只有称呼上的区别。</p>
<p>道教以始源于黄帝，乃尊黄帝为始祖，以阐扬道教精义的老子为道祖；以组成道教的张道陵为教祖，是谓道教三祖。道教认为黄帝问道于广成子后成仙，是第一个成仙的人，因此黄帝在道教中有十分重要的地位。于是以黄帝即位之年为起点，以连续数字纪年，称之为道历，也叫黄帝纪年，黄帝历等。</p>
<h2 id="后记">后记</h2><p>鉴于文字仓促写就，又笔者学识有限，故文中必有谬误之处，还请诸君不吝指正。</p>
<p>重写本文时，将原先四篇文章写到一起，用词上多有不一致的地方，比如前面用西历，后面又用公历。笔者之所以没有改正统一，也因其反映了笔者矛盾的心态，一方面觉得公历并不科学，心底里不太接受，一方面又因为公历乃世界通用，心里明了废除公历是在不可能，也不实际，不必要。故此用词反复。</p>
]]></content>
    <summary type="html">
    <![CDATA[本文主要介绍了中国传统历法的一些知识，限于笔者学识浅薄，不免有谬误之处。本文早先发表在笔者之前的博客上，也首发与百度汉服吧。在本博客重新发布时，笔者年纪长了两岁，心态也有所变化，因此观点上，遣词造句上，都有更改之处。]]>
    
    </summary>
    
      <category term="文化" scheme="https://lvxublog.com/tags/%E6%96%87%E5%8C%96/"/>
    
      <category term="历法" scheme="https://lvxublog.com/tags/%E5%8E%86%E6%B3%95/"/>
    
      <category term="杂谈" scheme="https://lvxublog.com/categories/%E6%9D%82%E8%B0%88/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[流氓软件快压]]></title>
    <link href="https://lvxublog.com/2015/04/07/%E6%B5%81%E6%B0%93%E8%BD%AF%E4%BB%B6%E5%BF%AB%E5%8E%8B/"/>
    <id>https://lvxublog.com/2015/04/07/流氓软件快压/</id>
    <published>2015-04-07T06:18:07.000Z</published>
    <updated>2015-12-15T13:19:05.000Z</updated>
    <content type="html"><![CDATA[<h2 id="正文">正文</h2><p>早就知道国内的软件很多都很没下限，但一直以为自己注意一点就好了，没想到我今天还是中枪了。</p>
<p>让我中枪的没节操软件叫<strong>快压</strong>。</p>
<p>我在网上下了一个后缀为 .zip 的压缩包，没想到，我用 7-zip 打开的时候，居然打不开，压缩包里只有一个 <code>说明.txt</code> 的文件，打开以后，里面是这么写的</p>
<figure class="highlight plain"><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></pre></td><td class="code"><pre><span class="line">尊敬的用户：</span><br><span class="line">    您当前使用的压缩软件无法直接查看或解压这个压缩包，因其在打包过程中采用</span><br><span class="line">了快压的超高压缩技术。</span><br><span class="line"></span><br><span class="line">这里为您列出压缩包中的内容：</span><br><span class="line">1、山西省第九届职业院校技能大赛专栏</span><br><span class="line">2、山西省第九届职业院校技能大赛专栏\山西省2015高职产品造型设计与快速成型大赛竞赛规程.doc</span><br><span class="line">3、山西省第九届职业院校技能大赛专栏\山西省2015高职导游、酒店服务，现代物流技能大赛规程.doc</span><br><span class="line">4、山西省第九届职业院校技能大赛专栏\山西省2015高职电子产品设计及制作大赛竞赛规程.doc</span><br><span class="line">5、山西省第九届职业院校技能大赛专栏\山西省2015高职电子商务技能大赛赛项规程.doc</span><br><span class="line">……</span><br><span class="line"></span><br><span class="line">    如要使用压缩包的全部内容，请您使用以下链接下载并安装快压压缩软件。</span><br><span class="line">http://www.kuaizip.com/down/KuaiZip_installer.exe</span><br><span class="line"></span><br><span class="line">=======================================================================</span><br><span class="line">快压简介：快压（KuaiZip）是一款免费、方便、快速的压缩和解压缩利器，拥有</span><br><span class="line">一流的压缩技术，是国内第一款具备自主压缩格式的软件。快压自身的压缩格式KZ</span><br><span class="line">具有超大的压缩比和超快的压缩解压速度，兼容 RAR, ZIP 和 7Z 等40余种压缩文</span><br><span class="line">件。快压特有的虚拟化技术，还可挂载压缩包、光驱镜像和虚拟机。</span><br><span class="line">=======================================================================</span><br></pre></td></tr></table></figure>
<p>什么快压的超高压缩技术，不就是 7z 改的么，恶心完用户，还要恶心用户的用户，用户的朋友，用户的同事。</p>
<p>恶心到家了。</p>
<p>幸好找到一个<strong>快压极限精简版</strong>，不用下那个流氓软件了。</p>
<p>下载地址见参考资料，感谢 Jixun。</p>
<p>其实用这种软件，不仅不方便别人，也是对自己资料的不负责任。假想有一天，快压倒闭了，老版本的快压万一不支持你的新版 Windows ，你要怎么取回你的资料，再专门装一个老版本的 Windows 专门解压你那一堆文件么。</p>
<p>退出快压保平安，网上搜九评快压，有真相。</p>
<h2 id="参考资料">参考资料</h2><ol>
<li><p><a href="http://jixun.org/p/2106" target="_blank" rel="noopener">Jixun 的资源仓库：快压极限精简+</a></p>
</li>
<li><p><a href="http://www.zhihu.com/question/22244263" target="_blank" rel="noopener">知乎：如何不装『快压』解压快压的zip包？</a></p>
</li>
</ol>
]]></content>
    <summary type="html">
    <![CDATA[<h2 id="正文">正文</h2><p>早就知道国内的软件很多都很没下限，但一直以为自己注意一点就好了，没想到我今天还是中枪了。</p>
<p>让我中枪的没节操软件叫<strong>快压</strong>。</p>
<p>我在网上下了一个后缀为 .zip 的压缩包，没想到，我]]>
    </summary>
    
      <category term="流氓软件" scheme="https://lvxublog.com/tags/%E6%B5%81%E6%B0%93%E8%BD%AF%E4%BB%B6/"/>
    
      <category term="网络" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[一个方便自己用hexo的批处理]]></title>
    <link href="https://lvxublog.com/2015/03/29/%E4%B8%80%E4%B8%AA%E6%96%B9%E4%BE%BF%E8%87%AA%E5%B7%B1%E7%94%A8hexo%E7%9A%84%E6%89%B9%E5%A4%84%E7%90%86/"/>
    <id>https://lvxublog.com/2015/03/29/一个方便自己用hexo的批处理/</id>
    <published>2015-03-29T06:05:15.000Z</published>
    <updated>2015-12-15T13:19:05.000Z</updated>
    <content type="html"><![CDATA[<p>用 Hexo 老要在 Bash 里输入命令，挺麻烦的所以自己作了一个批处理文件，方便自己使用。</p>
<p>为了弄出这个东西，也鼓捣了好一阵，看了好多批处理方面的文章，后来弄出来以后发现其他都能用，就是遇到 deploy 的时候，就不行了。后来想到可能是在 cmd 命令行里无法用 Git 的缘故，又研究了半天。</p>
<p>后来又增加了新建文章、新建草稿，发布草稿的功能。</p>
<p>其中发布草稿的功能颇费了一番心思。</p>
<p>把批处理文件发出来，大家交流一下把，也请指正。</p>
<h2 id="批处理文件">批处理文件</h2><p>批处理文件如下：</p>
<a id="more"></a>
<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><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><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br></pre></td><td class="code"><pre><span class="line">@<span class="built_in">echo</span> off &amp; <span class="built_in">rem</span> 关闭显示命令</span><br><span class="line"><span class="built_in">title</span> Hexo &amp; <span class="built_in">rem</span> 设置</span><br><span class="line"><span class="built_in">setlocal</span> enabledelayedexpansion &amp; <span class="built_in">REM</span> 启用延迟环境变量扩展，从而可以使用类似 <span class="variable">!var!</span> 这样的低优先级变量，实现变量嵌套。</span><br><span class="line"><span class="comment">rem ===============</span></span><br><span class="line"><span class="comment">rem 这是一个用于 Hexo 的批处理。</span></span><br><span class="line"><span class="comment">rem 使用前请先把 Git 安装目录下的 "\bin" 目录 和 "\libexec\git-core" 目录加入环境变量使得在 CMD 命令行下可以使用 Git 命令。</span></span><br><span class="line"><span class="comment">rem 还需要复制 ~/.ssh 目录到 Git 的安装目录下（比如"C:\Program Files (x86)\Git"），使得 CMD 命令行可以访问 SSH密钥。</span></span><br><span class="line"><span class="comment">rem ===============</span></span><br><span class="line"><span class="comment">rem 选择操作开始</span></span><br><span class="line">:<span class="built_in">Start</span></span><br><span class="line"><span class="built_in">cls</span></span><br><span class="line"><span class="built_in">echo</span>.</span><br><span class="line"><span class="built_in">echo</span>.</span><br><span class="line"><span class="built_in">echo</span> ==============================================</span><br><span class="line"><span class="built_in">echo</span> =                                            =</span><br><span class="line"><span class="built_in">echo</span> =               请选择需要的操作             =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">1</span>.启动Hexo本地服务器                =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">2</span>.生成                              =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">3</span>.部署                              =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">4</span>.生成并部署                        =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">5</span>.清除临时文件                      =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">6</span>.新建文章                          =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">7</span>.新建草稿                          =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">8</span>.发布草稿                          =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">9</span>.退出                              =</span><br><span class="line"><span class="built_in">echo</span> =                                            =</span><br><span class="line"><span class="built_in">echo</span> =              BY:吕旭（lvxu1987@gmail.com） =</span><br><span class="line"><span class="built_in">echo</span> ==============================================</span><br><span class="line"><span class="built_in">echo</span> 请输入您的选择</span><br><span class="line"></span><br><span class="line"><span class="built_in">set</span> /p Choice=</span><br><span class="line"></span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">1</span>" <span class="keyword">goto</span> server</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">2</span>" <span class="keyword">goto</span> generate</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">3</span>" <span class="keyword">goto</span> deploy</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">4</span>" <span class="keyword">goto</span> generate_deploy</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">5</span>" <span class="keyword">goto</span> clean</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">6</span>" <span class="keyword">goto</span> new</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">7</span>" <span class="keyword">goto</span> new_draft</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">8</span>" <span class="keyword">goto</span> publish_draft</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">9</span>" <span class="keyword">goto</span> end</span><br><span class="line"><span class="keyword">goto</span> Input_Error</span><br><span class="line"><span class="comment">rem 选择操作结束</span></span><br><span class="line"></span><br><span class="line"><span class="comment">rem 启动Hexo本地服务器开始</span></span><br><span class="line">:server</span><br><span class="line"><span class="built_in">cls</span></span><br><span class="line"><span class="built_in">echo</span>.</span><br><span class="line"><span class="built_in">echo</span>.</span><br><span class="line"><span class="built_in">echo</span> ==============================================</span><br><span class="line"><span class="built_in">echo</span> =                                            =</span><br><span class="line"><span class="built_in">echo</span> =       请选择服务器启动方式的操作           =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">1</span>.标准启动                          =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">2</span>.设置端口                          =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">3</span>.静态启动（只显示public文件夹）    =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">4</span>.包括草稿                          =</span><br><span class="line"><span class="built_in">echo</span> =        <span class="number">5</span>.返回                              =</span><br><span class="line"><span class="built_in">echo</span> =                                            =</span><br><span class="line"><span class="built_in">echo</span> =                                            =</span><br><span class="line"><span class="built_in">echo</span> =                                            =</span><br><span class="line"><span class="built_in">echo</span> =                                            =</span><br><span class="line"><span class="built_in">echo</span> =                                            =</span><br><span class="line"><span class="built_in">echo</span> =              BY:吕旭（lvxu1987@gmail.com） =</span><br><span class="line"><span class="built_in">echo</span> ==============================================</span><br><span class="line"><span class="built_in">echo</span> 请选择</span><br><span class="line"></span><br><span class="line"><span class="built_in">set</span> /p Choice=</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">1</span>" hexo server</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">2</span>" <span class="keyword">goto</span> Server_Port</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">3</span>" hexo server -s</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">4</span>" hexo server --drafts</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="number">5</span>" <span class="keyword">goto</span> <span class="built_in">Start</span></span><br><span class="line"><span class="keyword">goto</span> server</span><br><span class="line"><span class="comment">rem 启动Hexo本地服务器结束</span></span><br><span class="line"></span><br><span class="line"><span class="comment">rem 启动非4000端口服务器</span></span><br><span class="line">:Server_Port</span><br><span class="line"><span class="built_in">set</span> /p port=请输入端口号：</span><br><span class="line">hexo server -p <span class="variable">%port%</span></span><br><span class="line"><span class="keyword">goto</span> server</span><br><span class="line"></span><br><span class="line"><span class="comment">rem 生成静态文件开始</span></span><br><span class="line">:generate</span><br><span class="line">hexo generate</span><br><span class="line"><span class="built_in">pause</span></span><br><span class="line"><span class="keyword">goto</span> <span class="built_in">Start</span></span><br><span class="line"><span class="comment">rem 生成静态文件结束</span></span><br><span class="line"></span><br><span class="line"><span class="comment">rem 部署到服务器开始</span></span><br><span class="line">:deploy</span><br><span class="line">hexo deploy</span><br><span class="line"><span class="built_in">pause</span></span><br><span class="line"><span class="keyword">goto</span> <span class="built_in">Start</span></span><br><span class="line"><span class="comment">rem 部署到服务器结束</span></span><br><span class="line"></span><br><span class="line"><span class="comment">rem 生成并部署开始</span></span><br><span class="line">:generate_deploy</span><br><span class="line">hexo generate --deploy</span><br><span class="line"><span class="built_in">pause</span></span><br><span class="line"><span class="keyword">goto</span> <span class="built_in">Start</span></span><br><span class="line"><span class="comment">rem 生成并部署结束</span></span><br><span class="line"></span><br><span class="line"><span class="comment">rem 清除临时文件开始</span></span><br><span class="line">:clean</span><br><span class="line">hexo clean</span><br><span class="line"><span class="built_in">pause</span></span><br><span class="line"><span class="keyword">goto</span> <span class="built_in">Start</span></span><br><span class="line"><span class="comment">rem 清除临时文件结束</span></span><br><span class="line"></span><br><span class="line"><span class="comment">rem 生成新文章开始</span></span><br><span class="line">:new</span><br><span class="line"><span class="built_in">echo</span> 请输入新文章的标题</span><br><span class="line"><span class="built_in">set</span> /p post_title=</span><br><span class="line">hexo new post "<span class="variable">%post_title%</span>"</span><br><span class="line"><span class="built_in">pause</span></span><br><span class="line"><span class="keyword">goto</span> <span class="built_in">Start</span></span><br><span class="line"><span class="comment">rem 生成新文章结束</span></span><br><span class="line"></span><br><span class="line"><span class="comment">rem 生成新草稿开始</span></span><br><span class="line">:new_draft</span><br><span class="line"><span class="built_in">echo</span> 请输入新草稿的标题</span><br><span class="line"><span class="built_in">set</span> /p draft_title=</span><br><span class="line">hexo new draft "<span class="variable">%draft_title%</span>"</span><br><span class="line"><span class="built_in">pause</span></span><br><span class="line"><span class="keyword">goto</span> <span class="built_in">Start</span></span><br><span class="line"><span class="comment">rem 生成新草稿结束</span></span><br><span class="line"></span><br><span class="line"><span class="comment">rem 发布新草稿开始</span></span><br><span class="line">:publish_draft</span><br><span class="line"><span class="built_in">dir</span> "source\_drafts" /b &gt; list_exp _exp &amp; <span class="built_in">rem</span> 输出草稿文件夹中的所有草稿的文件名到 list_exp 里（包含扩展名）</span><br><span class="line"><span class="built_in">cd</span>. &gt;list &amp; <span class="built_in">rem</span> 清空 list 文件的内容，防止存在 list 文件导致错误（直接删除的话如果不存在list文件会出错）</span><br><span class="line"><span class="keyword">for</span> /f "delims=" <span class="variable">%%i</span> <span class="keyword">in</span> (list_exp) <span class="keyword">do</span> (<span class="built_in">echo</span>.<span class="variable">%%i</span>&gt;&gt;list) &amp; <span class="built_in">rem</span> 将 list_exp 中非空行的内容输出到 list文件里</span><br><span class="line"><span class="built_in">set</span> /a sequence=<span class="number">1</span> &amp; <span class="built_in">rem</span> 设置顺序代号变量为 <span class="number">1</span></span><br><span class="line"><span class="keyword">for</span> /f <span class="variable">%%i</span> <span class="keyword">in</span> (list) <span class="keyword">do</span> <span class="keyword">call</span> :echo_list <span class="variable">%%i</span> &amp; <span class="built_in">rem</span> 为list 中的每一行内容调用 echo_list 函数</span><br><span class="line"><span class="built_in">echo</span> 您希望发布哪篇草稿？</span><br><span class="line"><span class="built_in">set</span> /p Choice= &amp; <span class="built_in">rem</span> 选择要发布的草稿</span><br><span class="line"><span class="keyword">for</span> /l <span class="variable">%%i</span> <span class="keyword">in</span> (<span class="number">1</span>,<span class="number">1</span>,<span class="variable">%sequence%</span>-<span class="number">1</span>) <span class="keyword">do</span> (</span><br><span class="line"><span class="keyword">if</span> "<span class="variable">%Choice%</span>"=="<span class="variable">%%i</span>" <span class="built_in">set</span> draft_name=<span class="variable">!draft_name%%i!</span></span><br><span class="line">) &amp; <span class="built_in">rem</span> 将被选中的草稿的文件名赋值给 "draft_name" 参数</span><br><span class="line"><span class="built_in">echo</span> 您希望提交的草稿是：<span class="variable">%draft_name%</span></span><br><span class="line"><span class="keyword">call</span> :no_ext <span class="variable">%draft_name%</span> &amp; <span class="built_in">rem</span> 删除草稿文件名的后缀名</span><br><span class="line"><span class="built_in">del</span> list &amp; <span class="built_in">rem</span> 删除临时文件</span><br><span class="line"><span class="built_in">del</span> list_exp &amp; <span class="built_in">rem</span> 删除临时文件</span><br><span class="line">hexo publish post "<span class="variable">%draft_name_no_ext%</span>" &amp; <span class="built_in">rem</span> 发布草稿</span><br><span class="line"><span class="built_in">pause</span></span><br><span class="line"><span class="keyword">goto</span> <span class="built_in">Start</span></span><br><span class="line"><span class="comment">rem 发布新草稿结束</span></span><br><span class="line"></span><br><span class="line"><span class="comment">rem 输入错误时回到菜单</span></span><br><span class="line">:Input_Error</span><br><span class="line"><span class="built_in">echo</span> 输入错误，请重新选择</span><br><span class="line"><span class="keyword">goto</span> <span class="built_in">Start</span></span><br><span class="line"></span><br><span class="line"><span class="comment">rem 退出批处理</span></span><br><span class="line">:end</span><br><span class="line"><span class="built_in">pause</span></span><br><span class="line"></span><br><span class="line"><span class="comment">rem "no_ext" 函数的作用是去除文件名中的扩展名，因为经测试必须不包括扩展名时 "hexo publish post" 命令才会生效</span></span><br><span class="line">:no_ext</span><br><span class="line"><span class="built_in">set</span> draft_name_no_ext=%~n1</span><br><span class="line"><span class="keyword">goto</span> :eof &amp; <span class="built_in">rem</span> 函数结束标志</span><br><span class="line"></span><br><span class="line"><span class="comment">rem 该函数的作用是输出 list 文件夹里每一个文件名并将其编号</span></span><br><span class="line">:echo_list</span><br><span class="line"><span class="built_in">echo</span> 草稿<span class="variable">%sequence%</span> : %<span class="number">1</span> &amp; <span class="built_in">rem</span> 显示草稿序号和文件名</span><br><span class="line"><span class="built_in">set</span> draft_name<span class="variable">%sequence%</span>=%<span class="number">1</span> &amp; <span class="built_in">rem</span> 将文件名赋值给 draft_name+序列号</span><br><span class="line"><span class="built_in">set</span> /a sequence=<span class="variable">%sequence%</span>+<span class="number">1</span> &amp; <span class="built_in">rem</span> 序列号+<span class="number">1</span></span><br><span class="line"><span class="keyword">goto</span> :eof &amp; <span class="built_in">rem</span> 函数结束标志</span><br></pre></td></tr></table></figure>
<p><a href="https://raw.githubusercontent.com/lvxu1987/lvxu1987.github.io/hexo/Hexo%20Operates.cmd" target="_blank" rel="noopener">单击这里</a> 可以下载批处理源文件。</p>
<h2 id="参考资料">参考资料</h2><p>1.<a href="http://blog.csdn.net/exlsunshine/article/details/18939329" target="_blank" rel="noopener">Windows下配置Git</a></p>
<p>2.<a href="http://www.cnblogs.com/hustskyking/p/problems-in-git-when-ssh.html" target="_blank" rel="noopener">git/ssh捋不清的几个问题 </a></p>
<p>3.<a href="http://czliu.com/windows-cmd-ssh-key-wen-ti/" target="_blank" rel="noopener">Windows Cmd SSH key 问题</a></p>
<p>4.<a href="http://mysuperbaby.iteye.com/blog/1390283" target="_blank" rel="noopener">批处理如何提取文件位置和文件名 不包括后缀</a></p>
<p>5.<a href="http://blog.csdn.net/xzz_hust/article/details/9311339" target="_blank" rel="noopener">批处理通过字符串截取得到文件名</a></p>
<p>6.<a href="http://bbs.bathome.net/thread-6537-1-3.html" target="_blank" rel="noopener">批处理脚本高级编程技巧——变量嵌套</a></p>
<p>7.<a href="http://www.bathome.net/thread-11529-1-1.html" target="_blank" rel="noopener">批处理怎么删除文件里的空行和含指定内容的行？</a></p>
<p>8.<a href="http://blog.csdn.net/davidhsing/article/details/1996180" target="_blank" rel="noopener">Bat 批处理之 for/f 详解</a></p>
<h2 id="原文链接">原文链接</h2><p>转载请注明原文地址：<a href="http://t.cn/RA4BPda" target="_blank" rel="noopener">http://t.cn/RA4BPda</a></p>
]]></content>
    <summary type="html">
    <![CDATA[为了方便自己使用，做了一个批处理文件，也共享给大家。]]>
    
    </summary>
    
      <category term="网络" scheme="https://lvxublog.com/tags/%E7%BD%91%E7%BB%9C/"/>
    
      <category term="hexo" scheme="https://lvxublog.com/tags/hexo/"/>
    
      <category term="网络" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[「请稍候」与「请稍后」]]></title>
    <link href="https://lvxublog.com/2015/03/28/%E3%80%8C%E8%AF%B7%E7%A8%8D%E5%80%99%E3%80%8D%E4%B8%8E%E3%80%8C%E8%AF%B7%E7%A8%8D%E5%90%8E%E3%80%8D/"/>
    <id>https://lvxublog.com/2015/03/28/「请稍候」与「请稍后」/</id>
    <published>2015-03-28T06:15:30.000Z</published>
    <updated>2015-12-15T13:19:05.000Z</updated>
    <content type="html"><![CDATA[<h2 id="正文">正文</h2><p>现在很多软件在载入界面时显示<strong>「请稍后」</strong>，其实是有问题的。</p>
<p>虽然<strong>「请稍后」</strong>和<strong>「请稍候」</strong>都有等待一段时间的意思，但是使用上颇有不同。</p>
<p><strong>「请稍候」</strong>意思完整，可以单独使用，意思是保持现有状态不变的情况下等候一会。</p>
<p><strong>「请稍后」</strong>意思并不完整，必须搭配动词才有完整意义，意思是终止现状态，等待一会，再做后面动词所说的事情。</p>
<a id="more"></a>
<p>举几个例子说明一下：</p>
<p>你去别人家，敲门，人家说：「请稍候。」说明人家马上来开门，你在门口等一下就行了，不要走开。</p>
<p>如果人家说：「请稍后再来。」那说明人家忙着呢，没功夫答理你，你应该离开，过一会再来。</p>
<p>再比如打电话对方通话中，会提示「您拨打的电话正在通话中，请稍后再拨。」就是说你要中断现在所做的事情，挂断电话，过一会再拨。</p>
<p>如果对方有通话等待的功能，会提示你「请不要挂断电话，您拨打的电话正在通话中。」这个时候你应该「稍候」，就是说你不要挂电话，保持现有状态，等候一会。</p>
<p>在软件载入的时候，提示文字配合进度条或者旋转的圆圈等图形，是希望用户有耐心一点，不要离开软件介面。因此应该是<strong>「请稍候」</strong>而非<strong>「请稍后」</strong>。</p>
<p>所以还是希望软件的开发者们注意一下。</p>
<h2 id="原文链接">原文链接</h2><p>转载请注明原文链接：<a href="http://t.cn/RA4BLOF" target="_blank" rel="noopener">http://t.cn/RA4BLOF</a></p>
]]></content>
    <summary type="html">
    <![CDATA[许多软件在等候时会出现「请稍后」的字样，故此对「请稍后」和「请稍候」进行一下辨析]]>
    
    </summary>
    
      <category term="网络" scheme="https://lvxublog.com/tags/%E7%BD%91%E7%BB%9C/"/>
    
      <category term="文化" scheme="https://lvxublog.com/tags/%E6%96%87%E5%8C%96/"/>
    
      <category term="杂谈" scheme="https://lvxublog.com/categories/%E6%9D%82%E8%B0%88/"/>
    
  </entry>
  
  <entry>
    <title><![CDATA[新博客，新开始]]></title>
    <link href="https://lvxublog.com/2015/03/26/%E6%96%B0%E5%8D%9A%E5%AE%A2%E6%96%B0%E5%BC%80%E5%A7%8B/"/>
    <id>https://lvxublog.com/2015/03/26/新博客新开始/</id>
    <published>2015-03-26T06:37:14.000Z</published>
    <updated>2020-04-01T13:43:45.000Z</updated>
    <content type="html"><![CDATA[<h2 id="搭建博客的过程">搭建博客的过程</h2><p>之前一直是在新浪 SAE 平台上用 wordpress4SAE 搭建<a href="http://lvxu1987.sinaapp.com/" target="_blank" rel="noopener">我的博客</a>。虽然也听说过静态博客、 GitHub Pages 什么的，但是一直也没有动力去弄。</p>
<p>最近，我以前用的域名 lyuxu.com 快到期了，我感觉 .com 域名不适合个人使用，就在 <a href="http://www.enom.com/" target="_blank" rel="noopener">eNom</a> 上另外注册了一个 .me 的域名，也就是现在这个 <a href="http://lvxu.me" target="_blank" rel="noopener">lvxu.me</a>。（现在嫌.me域名太贵，又换成<a href="http://lvxu.site" target="_blank" rel="noopener">lvxu.site</a>了。）</p>
<p>后来一想，域名都换了，干脆把后台程序也换了吧，就开始研究怎么在 GitHub 上搭建博客。</p>
<p>因为自己也不是程序猿，对 GitHub 并不熟悉，而互联网上用 GitHub 搭建博客的教程大都没有对 git 本身有什么讲解，所以一开始研究 GitHub 费了一番功夫，好在 <a href="http://rogerdudler.GitHub.io/git-guide/index.zh.html" target="_blank" rel="noopener">Git 简明指南</a> 和一个叫 <a href="http://git-scm.com/book/zh/" target="_blank" rel="noopener">Git - Book</a> 的网站给了我很大帮助。</p>
<p>鼓捣鼓捣了几天，终于大概会用 GitHub 了，就开始研究怎么用 GitHub pages 搭建博客。在这个过程中，cnFeat的一篇文章<a href="https://www.cnfeat.com/blog/2014/05/11/how-to-build-a-blog/" target="_blank" rel="noopener">如何搭建一个独立博客——简明GitHub Pages与Hexo教程</a> 和 <a href="http://hexo.io/zh-cn/docs/" target="_blank" rel="noopener">Hexo 的官方文档</a> 对我的帮助很大。另外还要感谢 WuChong 他的<a href="http://wuchong.me/jacman/" target="_blank" rel="noopener">Jacman 主题</a> 真的很棒。</p>
<a id="more"></a>
<p>另，后来考虑到国内访问速度的问题，把博客从 GitHub 转到了 GitCafe 上。</p>
<h2 id="搭建博客的过程中遇到的一些问题">搭建博客的过程中遇到的一些问题</h2><h3 id="如何把程序也同步到_GitHub_上">如何把程序也同步到 GitHub 上</h3><p>因为 hexo 程序部署的时候会部署到 <code>master</code> 分支（或者 <code>gh-pages</code>）上，要想把hexo的程序也同步到 GitHub 上，需要新建一个分支（比如 <code>hexo</code>），在本地转到 <code>hexo</code> 分支上工作，然后再配置<code>_config.yml</code>，使之部署到 <code>master</code> 分支（或者 <code>gh-pages</code>）上。</p>
<h3 id="修改_-gitignore_文件">修改 .gitignore 文件</h3><p>hexo 安装后默认的 <code>.gitignore</code> 文件是以下这个样子的</p>
<figure class="highlight plain"><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">.DS_Store</span><br><span class="line">Thumbs.db</span><br><span class="line">db.json</span><br><span class="line">*.log</span><br><span class="line">node_modules/</span><br><span class="line">public/</span><br><span class="line">.deploy*/</span><br></pre></td></tr></table></figure>
<p>这会导致 hexo 的程序本身不会被上传， checkout 的时候，hexo 的程序本身会丢失，在重装 hexo 的时候，<code>_config.yml</code>文件又会被覆盖。所以要把修改<code>.gitignore</code> 文件为：</p>
<figure class="highlight plain"><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">#.DS_Store  取消忽略</span><br><span class="line">#*.log  取消忽略</span><br><span class="line">#node_modules/  取消忽略</span><br><span class="line">.deploy*/</span><br><span class="line">!.deploy_git/README.md  不忽略 README.md 文件</span><br><span class="line">/public/</span><br><span class="line">db.json</span><br><span class="line">*.bak  #忽略 notepad++ 的备份文件</span><br><span class="line">Thumbs.db</span><br></pre></td></tr></table></figure>
<p>需要注意的是，如果在没有更改<code>.gitignore</code> 文件的前提下，已经上传到 GitHub 过，那已经上传过的文件就已经纳入了本管理，不受<code>.gitignore</code> 文件的影响，这样的话，就需要修复<code>.gitignore</code> 文件。</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></pre></td><td class="code"><pre><span class="line">$ git rm -r --cached .   <span class="comment"># 从暂存区域删除所有文件</span></span><br><span class="line">git add .                <span class="comment"># 把所有文件添加到暂存区域</span></span><br><span class="line">git commit -m <span class="string">".gitignore 文件已经可以正常工作"</span></span><br></pre></td></tr></table></figure>
<p>这样把暂存区所有文件删除，再重新添加时，<code>.gitignore</code> 文件就会起作用。</p>
<h3 id="把网站同时部署到_GitHub_和_GitCafe"><del>把网站同时部署到 GitHub 和 GitCafe</del></h3><p><del>由于GitHub在国内访问延迟较大，因此不少人也把博客部署在 GitCafe 上。 GitCafe 上建站和 GitHub 类似，只是无论建立个人页面还是项目页面，都需要建立一个 GitCafe-Pages 的分支，还有绑定域名的方法不同，其他都大同小异。</del></p>
<p><del>如果想让 GitHub 和 GitCafe 上都是最新的页面，就需要把网站同时部署到 GitHub 和 GitCafe 上。hexo 本身有同时部署到多个地址的功能，hexo 的官方文档有说明，再次不再赘述。需要注意的是， GitHub 和 GitCafe 都支持 SSH 加密，可以使用同一套密钥，这样部署时比较方便。</del></p>
<p><del>部署完成后，就可以修改域名记录，以 DNSpod 为例，可以设置线路类型，将<strong>默认线路</strong>指向 GitHub 的IP，将<strong>电信</strong>和<strong>联通</strong>线路指向 GitCafe的IP，这样就可以使国外 ip 访问 GitHub，国内 ip 访问 GitCafe。</del></p>
<p>GitCafe没啦~</p>
<h3 id="README-MD_的问题">README.MD 的问题</h3><p>GitHub 通常要求建立一个 README.MD 文件，这个README.ME 文件会显示在项目主页上。但是hexo会把所有的 .md 文件都解析成 .html 文件。</p>
<p><a href="http://cnfeat.com/2014/05/10/2014-05-11-how-to-build-a-blog/#Hexo上传README文件" target="_blank" rel="noopener">cnFeat的博客</a> 里说上传 README.MD 文件到 <code>.deploy</code> 文件夹里再 deploy 就可以，但是经我测试，hexo3.0 下，deploy会生成一个 <code>.deploy_git</code> 的文件夹，部署时会将其中的文件推送到 GitHub / GitCafe 中。但是部署时会重新生成文件，README.MD 会被自动删除掉，因而无法部署到服务器上。</p>
<p>我目前的解决方法是把 README.MD 文件改名成 README.mdown 文件，放在 <code>/source</code> 里面。这样的话，hexo不会将其解析成 .html 文件，而在 GitHub / GitCafe 中，也能正常显示。</p>
<h3 id="添加微博秀">添加微博秀</h3><p>我使用的 Jacman 主题本身是支持微博秀的，但是主题生成的微博秀不好看，想要其他样式，需要自定义。</p>
<p>首先打开新浪微博开放平台中的<a href="http://app.weibo.com/tool/weiboshow" target="_blank" rel="noopener">微博秀设置</a> 的页面，根据自己的喜好生成代码。</p>
<p>比如我生成的代码是：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&lt;iframe width=&quot;100%&quot; height=&quot;550&quot; class=&quot;share_self&quot;  frameborder=&quot;0&quot; scrolling=&quot;no&quot;  src=&quot;http://widget.weibo.com/weiboshow/index.php?  language=&amp;width=0&amp;height=550&amp;fansRow=1&amp;ptype=1&amp;speed=0&amp;skin=9&amp;isTitle=1&amp;noborder=1&amp;isWeibo=1&amp;isFans=0&amp;uid=1234567890&amp;verifier=abcdefgh&amp;colors=2CA6CB,ffffff,666666,0082cb,e6e6e6&amp;dpc=1&quot;&gt;&lt;/iframe&gt;</span><br></pre></td></tr></table></figure>
<p>然后在 <code>\hexo\themes\jacman\layout\_widget</code>  中新建名为 <code>weiboshow.ejs</code>的文件，添加如下代码：</p>
<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></pre></td><td class="code"><pre><span class="line">&lt;div <span class="class"><span class="keyword">class</span></span>=<span class="string">"weiboshow"</span>&gt;</span><br><span class="line">  &lt;p <span class="class"><span class="keyword">class</span></span>=<span class="string">"asidetitle"</span>&gt;&lt;%= __(<span class="string">'weibo'</span>) %&gt;&lt;<span class="regexp">/p&gt;</span></span><br><span class="line"><span class="regexp">    微博秀代码</span></span><br><span class="line"><span class="regexp">&lt;/</span>div&gt;</span><br></pre></td></tr></table></figure>
<p>但是为了代码美观，也方便自己万一要更换微博帐号，最好把 <code>uid=1234567890&amp;verifier=abcdefgh</code> 改成 <code>uid=&lt;%= theme.author.tsina %&gt;&amp;verifier=&lt;%- theme.author.weibo_verifier %&gt;</code> ，这样就可以在主题的配置文件中修改微博帐号了。</p>
<p>最后记得重新配置 Jacman 主题的 <code>_config.yml</code> 文件</p>
<figure class="highlight plain"><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></pre></td><td class="code"><pre><span class="line">....</span><br><span class="line">widgets: </span><br><span class="line">- rss</span><br><span class="line">- category</span><br><span class="line">- tag</span><br><span class="line">- weiboshow ##启用刚才新建的 weiboshow 插件</span><br><span class="line">- links</span><br><span class="line">....</span><br><span class="line">author：</span><br><span class="line">....</span><br><span class="line">  weibo_verifier: abcdefgh ## e.g. b3593ceb Your weibo-show widget verifier ,if you use weibo-show it is needed.</span><br><span class="line">  tsina: 1234567890    ## e.g. 2176287895  Your weibo ID,It will be used in share button. </span><br><span class="line">  ## 从微博秀的代码里找到这两个值填在这里</span><br><span class="line">....</span><br></pre></td></tr></table></figure>
<h3 id="更换评论系统到Gitment">更换评论系统到Gitment</h3><p>原先使用的好些评论系统，渐渐都不好用了。在网上看到现在很多人使用Gitment，利用GitHub本身的Issues来搭建评论系统。</p>
<p>搭建过程中，参考了<a href="https://imsun.net/posts/gitment-introduction/" target="_blank" rel="noopener">Gitment原作者的博客</a>、<a href="http://xichen.pub/2018/01/31/2018-01-31-gitment/" target="_blank" rel="noopener">添加Gitment评论系统踩过的坑 | XiChen’s Blog</a>和<a href="https://www.jianshu.com/p/57afa4844aaa" target="_blank" rel="noopener">Gitment评论功能接入踩坑教程 - 简书</a>等文章。</p>
<p>Gitment搭建方法本身不再赘述，根据作者博客说明，将下列代码添加在hexo主题模版文章页面即可一般是<code>themes\[主题名字]\layout\post.ejs</code>或<code>post.swig</code>。</p>
<figure class="highlight plain"><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></pre></td><td class="code"><pre><span class="line">&lt;div id=&quot;container&quot;&gt;&lt;/div&gt;</span><br><span class="line">&lt;link rel=&quot;stylesheet&quot; href=&quot;https://imsun.github.io/gitment/style/default.css&quot;&gt;</span><br><span class="line">&lt;script src=&quot;https://imsun.github.io/gitment/dist/gitment.browser.js&quot;&gt;&lt;/script&gt;</span><br><span class="line">&lt;script&gt;</span><br><span class="line">var gitment = new Gitment(&#123;</span><br><span class="line">  id: &apos;页面 ID&apos;, // 可选。默认为 location.href</span><br><span class="line">  owner: &apos;你的 GitHub ID&apos;,</span><br><span class="line">  repo: &apos;存储评论的 repo&apos;,</span><br><span class="line">  oauth: &#123;</span><br><span class="line">    client_id: &apos;你的 client ID&apos;,</span><br><span class="line">    client_secret: &apos;你的 client secret&apos;,</span><br><span class="line">  &#125;,</span><br><span class="line">&#125;)</span><br><span class="line">gitment.render(&apos;container&apos;)</span><br><span class="line">&lt;/script&gt;</span><br></pre></td></tr></table></figure>
<p>Gitment的配置本身我不再赘述，我主要就我遇到的问题说一说。</p>
<ol>
<li>页面ID的问题。参考前面两个踩坑教程，把id写成文章时间。</li>
<li>原代码的第一行是 <code>&lt;div id=&quot;container&quot;&gt;&lt;/div&gt;</code> ,如果你的页面已经有一个<code>div</code>的<code>id</code>是<code>container</code>的话，就容易冲突，可以将这一行修改为<code>&lt;div id=&quot;gitment_container&quot;&gt;&lt;/div&gt;</code>，并将倒数</li>
</ol>
<p>第3行改为<code>gitment.render(&#39;git-comments&#39;)</code>即可。</p>
<p>另外还需要注意的是，如果你的Hexo里面有多个模版，请把不同模版的页面ID生成的方法改成相同的。</p>
]]></content>
    <summary type="html">
    <![CDATA[分享一下搭建博客的心得体会和搭建过程，并对搭建过程中遇到的一些问题进行一下总结。]]>
    
    </summary>
    
      <category term="hexo" scheme="https://lvxublog.com/tags/hexo/"/>
    
      <category term="github" scheme="https://lvxublog.com/tags/github/"/>
    
      <category term="网络" scheme="https://lvxublog.com/categories/%E7%BD%91%E7%BB%9C/"/>
    
  </entry>
  
</feed>