<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>我爱学习</title><link>https://wanjuns.com/</link><description>知行合一</description><item><title>SQL SERVER 行列转换——动态转换</title><link>https://wanjuns.com/?id=6</link><description>&lt;p&gt;&amp;nbsp; 前边介绍了静态转换和PIVOT、UNPIVOT转换的方式，这次介绍一下动态拼接转换的形式，有时候我们的数据不是固定的，可能会有多条，所以需要我们动态进行拼接实现，行转列测试数据：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;--测试数据&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-sql&quot;&gt;if&amp;nbsp;not&amp;nbsp;object_id(N&amp;#39;Tempdb..#T&amp;#39;)&amp;nbsp;is&amp;nbsp;null
drop&amp;nbsp;table&amp;nbsp;#T
Go
Create&amp;nbsp;table&amp;nbsp;#T([Name]&amp;nbsp;nvarchar(22),[Subject]&amp;nbsp;nvarchar(22),[Score]&amp;nbsp;int)
Insert&amp;nbsp;#T
select&amp;nbsp;N&amp;#39;李四&amp;#39;,N&amp;#39;语文&amp;#39;,60&amp;nbsp;union&amp;nbsp;all
select&amp;nbsp;N&amp;#39;李四&amp;#39;,N&amp;#39;数学&amp;#39;,70&amp;nbsp;union&amp;nbsp;all
select&amp;nbsp;N&amp;#39;李四&amp;#39;,N&amp;#39;英语&amp;#39;,80&amp;nbsp;union&amp;nbsp;all
select&amp;nbsp;N&amp;#39;张三&amp;#39;,N&amp;#39;语文&amp;#39;,90&amp;nbsp;union&amp;nbsp;all
select&amp;nbsp;N&amp;#39;张三&amp;#39;,N&amp;#39;数学&amp;#39;,80&amp;nbsp;union&amp;nbsp;all
select&amp;nbsp;N&amp;#39;张三&amp;#39;,N&amp;#39;英语&amp;#39;,70
Go&lt;/pre&gt;&lt;p&gt;--测试数据结束&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 动态写法（加上了总分和平均分）：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-sql&quot;&gt;DECLARE&amp;nbsp;@sql&amp;nbsp;VARCHAR(MAX)
SET&amp;nbsp;@sql&amp;nbsp;=&amp;nbsp;&amp;#39;select&amp;nbsp;Name&amp;#39;
SELECT&amp;nbsp;&amp;nbsp;@sql&amp;nbsp;=&amp;nbsp;@sql&amp;nbsp;+&amp;nbsp;&amp;#39;,max(case&amp;nbsp;Subject&amp;nbsp;when&amp;nbsp;&amp;#39;&amp;#39;&amp;#39;&amp;nbsp;+&amp;nbsp;Subject
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&amp;nbsp;&amp;#39;&amp;#39;&amp;#39;&amp;nbsp;then&amp;nbsp;Score&amp;nbsp;else&amp;nbsp;0&amp;nbsp;end)[&amp;#39;&amp;nbsp;+&amp;nbsp;Subject&amp;nbsp;+&amp;nbsp;&amp;#39;]&amp;#39;
FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;SELECT&amp;nbsp;DISTINCT
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Subject
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#T
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&amp;nbsp;a
SET&amp;nbsp;@sql&amp;nbsp;=&amp;nbsp;@sql
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&amp;nbsp;&amp;#39;,sum(Score)&amp;nbsp;总分,cast(avg(Score*1.0)&amp;nbsp;as&amp;nbsp;decimal(18,2))&amp;nbsp;平均分&amp;nbsp;from&amp;nbsp;#T&amp;nbsp;group&amp;nbsp;by&amp;nbsp;Name&amp;#39;
EXEC(@sql)&lt;/pre&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 动态的也可以使用pivot：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-sql&quot;&gt;DECLARE&amp;nbsp;@sql&amp;nbsp;VARCHAR(MAX)
SELECT&amp;nbsp;@sql=isnull(@sql+&amp;#39;,&amp;#39;,&amp;#39;&amp;#39;)+Subject&amp;nbsp;FROM&amp;nbsp;#T&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;Subject
SET&amp;nbsp;@sql=&amp;#39;select&amp;nbsp;m.*&amp;nbsp;,&amp;nbsp;n.总分,&amp;nbsp;n.平均分&amp;nbsp;from
(select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;(select&amp;nbsp;*&amp;nbsp;from&amp;nbsp;#T)&amp;nbsp;a&amp;nbsp;pivot&amp;nbsp;(max(Score)&amp;nbsp;for&amp;nbsp;Subject&amp;nbsp;in&amp;nbsp;(&amp;#39;+@sql+&amp;#39;))&amp;nbsp;b)&amp;nbsp;m&amp;nbsp;,
(select&amp;nbsp;Name,sum(Score)总分,&amp;nbsp;cast(avg(Score*1.0)&amp;nbsp;as&amp;nbsp;decimal(18,2))平均分&amp;nbsp;from&amp;nbsp;#T&amp;nbsp;group&amp;nbsp;by&amp;nbsp;Name)&amp;nbsp;n
where&amp;nbsp;m.Name=&amp;nbsp;n.Name&amp;#39;
exec(@sql)&lt;/pre&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 结果如下：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 列转行的测试数据：&lt;/p&gt;&lt;p&gt;--测试数据&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-sql&quot;&gt;if&amp;nbsp;not&amp;nbsp;object_id(N&amp;#39;T&amp;#39;)&amp;nbsp;is&amp;nbsp;null&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;drop&amp;nbsp;table&amp;nbsp;T&amp;nbsp;&amp;nbsp;
Go&amp;nbsp;&amp;nbsp;
Create&amp;nbsp;table&amp;nbsp;T([姓名]&amp;nbsp;nvarchar(22),[语文]&amp;nbsp;int,[数学]&amp;nbsp;int,[英语]&amp;nbsp;int)&amp;nbsp;&amp;nbsp;
Insert&amp;nbsp;T&amp;nbsp;&amp;nbsp;
select&amp;nbsp;N&amp;#39;李四&amp;#39;,60,70,80&amp;nbsp;union&amp;nbsp;all&amp;nbsp;&amp;nbsp;
select&amp;nbsp;N&amp;#39;张三&amp;#39;,90,80,70&amp;nbsp;&amp;nbsp;
Go&lt;/pre&gt;&lt;p&gt;--测试数据结束&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 动态写法：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-sql&quot;&gt;DECLARE&amp;nbsp;@sql&amp;nbsp;VARCHAR(8000)
SELECT&amp;nbsp;@sql=isnull(@sql+&amp;#39;&amp;nbsp;union&amp;nbsp;all&amp;nbsp;&amp;#39;,&amp;#39;&amp;#39;)+&amp;#39;&amp;nbsp;select&amp;nbsp;姓名,&amp;nbsp;[课程]=&amp;#39;
+quotename(Name,&amp;#39;&amp;#39;&amp;#39;&amp;#39;)+&amp;#39;&amp;nbsp;,&amp;nbsp;[分数]&amp;nbsp;=&amp;nbsp;&amp;#39;+quotename(Name)+&amp;#39;&amp;nbsp;from&amp;nbsp;T&amp;#39;
FROM&amp;nbsp;syscolumns
WHERE&amp;nbsp;Name!=&amp;#39;姓名&amp;#39;&amp;nbsp;AND&amp;nbsp;ID=object_id(&amp;#39;T&amp;#39;)--表名tb，不包含列名为姓名的其他列
ORDER&amp;nbsp;BY&amp;nbsp;colid
EXEC(@sql+&amp;#39;&amp;nbsp;order&amp;nbsp;by&amp;nbsp;姓名&amp;#39;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;同样的动态写法也可以使用unpivot：
DECLARE&amp;nbsp;@sql&amp;nbsp;VARCHAR(8000)
SELECT&amp;nbsp;@sql=isnull(@sql+&amp;#39;,&amp;#39;,&amp;#39;&amp;#39;)+quotename(Name)
FROM&amp;nbsp;syscolumns
WHERE&amp;nbsp;ID=object_id(&amp;#39;T&amp;#39;)AND&amp;nbsp;Name&amp;nbsp;NOT&amp;nbsp;IN(&amp;#39;姓名&amp;#39;)
ORDER&amp;nbsp;BY&amp;nbsp;Colid
SET&amp;nbsp;@sql=&amp;#39;select&amp;nbsp;姓名,[课程],[分数]&amp;nbsp;from&amp;nbsp;T&amp;nbsp;unpivot&amp;nbsp;([分数]&amp;nbsp;for&amp;nbsp;[课程]&amp;nbsp;in(&amp;#39;+@sql+&amp;#39;))b&amp;#39;
exec(@sql)&lt;/pre&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 结果如下：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 以上我们实现了在数据不确定的状态下，动态的拼接语句进行了行列互换。&lt;/p&gt;&lt;p&gt;————————————————&lt;/p&gt;&lt;p&gt;版权声明：本文为CSDN博主「二月十六」的原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接及本声明。&lt;/p&gt;&lt;p&gt;原文链接：https://blog.csdn.net/sinat_28984567/article/details/79865046&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 06 Apr 2020 16:34:50 +0800</pubDate></item><item><title>几种隐藏批处理运行窗口的方法</title><link>https://wanjuns.com/?id=5</link><description>&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;（1）通过批处理命令实现。缺点：会看到一个窗口一闪而逝。优点：简单，直接添加即可。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;@echo off&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;if &amp;quot;%1&amp;quot;==&amp;quot;h&amp;quot; goto begin&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;start mshta vbscript:createobject(&amp;quot;wscript.shell&amp;quot;).run(&amp;quot;&amp;quot;&amp;quot;%~nx0&amp;quot;&amp;quot; h&amp;quot;,0)(window.close)&amp;amp;&amp;amp;exit&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;:begin&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: #FF0000;&quot;&gt;::以下为正常批处理命令，不可含有pause set/p等交互命令&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;pause&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; color: #000000;&quot;&gt;（2）利用vbs脚本实现隐藏。缺点：调用麻烦点。优点：基本看不到痕迹（非绝对的，指一般用户）&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;HideRun.vbs&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;CreateObject(&amp;quot;WScript.Shell&amp;quot;).Run &amp;quot;cmd /c D:/test.bat&amp;quot;,0&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;其中D:/test.bat是你的批处理路径&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;.....................................................................................................................................&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;另一思路为把bat转换成vbs，然后vbs生成一个临时bat文件，然后WScript.Shell.Run隐藏启动这个临时bat。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;HideRun.bat&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;echo CreateObject(&amp;quot;WScript.Shell&amp;quot;).Run &amp;quot;cmd /c D:/test.bat&amp;quot;,0&amp;gt;$tmp.vbs&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;cscript.exe /e:vbscript $tmp.vbs&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;del $tmp.vbs&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;这个批处理其实不能使其批处理本身隐藏，但是下面大部分隐藏调用批处理的原理和基础。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;HideRun.js&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;new ActiveXObject(&amp;#39;WScript.Shell&amp;#39;).Run(&amp;#39;cmd /c D:/Test.bat&amp;#39;,0);&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;用Javascript有什么好处呢？js的字符串变量可以用单引号，从而方便命令行作为参数调用，而且js很好的支持多行语句用 ; 分隔写成一行。要注意的是：js要区分大小写，方法&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;必须用括号，结尾必须有分号。所以就成了下面的命令：&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;mshta &amp;quot;javascript:new ActiveXObject(&amp;#39;WScript.Shell&amp;#39;).Run(&amp;#39;cmd /c D:/test.bat&amp;#39;,0);window.close()&amp;quot;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;通常系统管理员会向用户端推送一些脚本并运行，或者拷贝批处理文件到客户端由用户自己运行。但是大部分脚本在运行时会弹出黑色背景的DOS窗口，这会让不少用户不知所&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;措，甚至误操作关闭正在运行的窗口。好在批处理文件的DOS窗口是可以隐藏的，以下是几种隐藏批处理运行窗口的方法。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;1.基础&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;HideRun.vbs&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;CreateObject(&amp;quot;WScript.Shell&amp;quot;).Run &amp;quot;cmd /c D:/test.bat&amp;quot;,0&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;其中D:/test.bat是你的批处理路径&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;另一思路为把bat转换成vbs，然后vbs生成一个临时bat文件，然后WScript.Shell.Run隐藏启动这个临时bat。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;HideRun.bat&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;echo CreateObject(&amp;quot;WScript.Shell&amp;quot;).Run &amp;quot;cmd /c D:/test.bat&amp;quot;,0&amp;gt;$tmp.vbs&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;cscript.exe /e:vbscript $tmp.vbs&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;del $tmp.vbs&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;这个批处理其实不能使其批处理本身隐藏，但是下面大部分隐藏调用批处理的原理和基础。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;HideRun.js&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;new ActiveXObject(&amp;#39;WScript.Shell&amp;#39;).Run(&amp;#39;cmd /c D:/Test.bat&amp;#39;,0);&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;用Javascript有什么好处呢？js的字符串变量可以用单引号，从而方便命令行作为参数调用，而且js很好的支持多行语句用 ; 分隔写成一行。要注意的是：js要区分大小写，方法&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;必须用括号，结尾必须有分号。所以就成了下面的命令：&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;mshta &amp;quot;javascript:new ActiveXObject(&amp;#39;WScript.Shell&amp;#39;).Run(&amp;#39;cmd /c D:/test.bat&amp;#39;,0);window.close()&amp;quot;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;2.用快捷方式&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;如果要使一个批处理本身隐藏，可以参考附件里的一个快捷方式，修改附件中的相关路径即可隐藏启动你的批处理。可以用vbs来建立一个 .lnk，其实用批处理也行（先echo一个&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;vbs出来）&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;3.利用系统服务&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;可以建立一个系统服务然后启动这个服务来启动批处理。缺点是启动服务较慢，需要管理员权限&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;runassrv add /cmdline:&amp;quot;C:/Windows/System32/cmd.exe /c D:/test.bat&amp;quot; /name:&amp;quot;mysrv&amp;quot;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;net start mysrv&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;4.利用at计划任务&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;用at可以建立一个计划任务，在不输入 /interactive 参数可以后台运行。但是建使用at必须有管理员权限&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;at 09:10 &amp;quot;cmd /c D:/Test.bat&amp;quot;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;然后在 9:10 系统就会自动后台以SYSTEM权限运行这个bat&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot;/&gt;5.利用ftype文件关联&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;ftype batfile=C:/Windows/System32/mshta &amp;quot;javascript:new ActiveXObject(&amp;#39;WScript.Shell&amp;#39;).Run(&amp;#39;cmd /c%1&amp;#39;,0);window.close();&amp;quot;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;6.其他用户&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;Windows 2k/XP支持多用户，如果能在后台登陆另一个账户的桌面然后运行一个批处理，就能完全达到隐藏的目的&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;7.编译成可执行文件&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; outline: 0px; padding: 0px; margin-top: 0px; margin-bottom: 16px; font-family: &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;SF Pro Display&amp;quot;, Roboto, Noto, Arial, &amp;quot;PingFang SC&amp;quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;不少方法可以实现，可以直接利用的工具有 Quick Batch file compiler。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 06 Apr 2020 16:31:34 +0800</pubDate></item><item><title>VB.NET水晶报表Crystal Reports学习(开发环境安装+程序示例+报表示例+客户端运行环境)</title><link>https://wanjuns.com/?id=4</link><description>&lt;p&gt;学习ERP的报表应用，了解了Crystal Reports的功能强大。以下将在学习过程中遇到的常见问题和解决办法与大家进行分享：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;一、开发环境安装&lt;/p&gt;&lt;p&gt;开发工具：Visual Studio 2017&lt;/p&gt;&lt;p&gt;开发包：CRforVS13SP25&lt;/p&gt;&lt;p&gt;(包含CRRuntime_64bit_13_0_25.msi+CrystalReportsForVisualStudio.msi)&lt;/p&gt;&lt;p&gt;CRforVS13SP25下载链接：https://pan.baidu.com/s/1FBcvug4Ygic0UhCivi3bxg&lt;/p&gt;&lt;p&gt;提取码：xkjl&lt;/p&gt;&lt;p&gt;二、报表开发&lt;/p&gt;&lt;p&gt;1.CrystalReportViewer控件使用&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;报表界面基本设置：&lt;/p&gt;&lt;p&gt;3. 报表数据显示&lt;/p&gt;&lt;p&gt;以Pull模式显示报表，不建议使用VS来设计报表，最好使用Crystal Reports设计软件来设计。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Dim rt As New ReportDocument&lt;/p&gt;&lt;p&gt;rt .Load(&amp;quot;你的文件目录\XXX.rpt&amp;quot;)&lt;/p&gt;&lt;p&gt;rt .SetDatabaseLogon(&amp;quot;sa&amp;quot;, &amp;quot;sa&amp;quot;)&lt;/p&gt;&lt;p&gt;Dim rtFieldDefinitions As ParameterFieldDefinitions&lt;/p&gt;&lt;p&gt;Dim rtUserName As ParameterFieldDefinition&lt;/p&gt;&lt;p&gt;Dim rtUserNameValues As New ParameterValues&lt;/p&gt;&lt;p&gt;Dim rtUserNameDiscreteValue As New ParameterDiscreteValue&lt;/p&gt;&lt;p&gt;rtUserNameDiscreteValue.Value = TextBox1.Text&lt;/p&gt;&lt;p&gt;‘一组参数&lt;/p&gt;&lt;p&gt;rtFieldDefinitions = rt.DataDefinition.ParameterFields&lt;/p&gt;&lt;p&gt;rtUserName = rtFieldDefinitions.Item(&amp;quot;UserName&amp;quot;) ‘rpt报表里对应参数&lt;/p&gt;&lt;p&gt;rtUserNameValues = rtUserName.CurrentValues&lt;/p&gt;&lt;p&gt;rtUserNameValues.Clear()&lt;/p&gt;&lt;p&gt;rtUserNameValues.Add(rtUserNameDiscreteValue)&lt;/p&gt;&lt;p&gt;rtUserName.ApplyCurrentValues(rtUserNameValues)&lt;/p&gt;&lt;p&gt;‘可以视情况增加多组参数&lt;/p&gt;&lt;p&gt;CrystalReportViewer1.ReportSource = rt&lt;/p&gt;&lt;p&gt;CrystalReportViewer1.ShowLogo = False&lt;/p&gt;&lt;p&gt;CrystalReportViewer1.Refresh()&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;3.Rpt报表设计&lt;/p&gt;&lt;p&gt;使用CrystalReport设计报表，示例使用的是CrystalReport9，要传送参数首先如下设参数字段：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;参数绑定报表字段，实现程序参数传递到报表：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;显示报表如下：&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;三、客户端运行环境&lt;/p&gt;&lt;p&gt;1.提示CLR20r3错误&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;以上错误为未安装Crystal Reports运行环境，可下载对应版本Runtime安装：&lt;/p&gt;&lt;p&gt;水晶报表Crystal Reports运行环境CRRuntime13_0_25 32位&lt;/p&gt;&lt;p&gt;水晶报表Crystal Reports运行环境CRRuntime13_0_25 64位&lt;/p&gt;&lt;p&gt;2、运行库缺失&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;出现以上运行环境安装错误是Windows常用运行库缺失，需要下载以下库安装：&lt;/p&gt;&lt;p&gt;水晶报表Crystal Reports运行环境 CRRuntime所需要Windows运行库&lt;/p&gt;&lt;p&gt;————————————————&lt;/p&gt;&lt;p&gt;版权声明：本文为CSDN博主「La.W」的原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接及本声明。&lt;/p&gt;&lt;p&gt;原文链接：https://blog.csdn.net/qq_38679844/article/details/104029738&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 14 Feb 2020 11:12:55 +0800</pubDate></item><item><title>php查询数据库返回json类型结果</title><link>https://wanjuns.com/?id=3</link><description>&lt;pre class=&quot;prism-highlight prism-language-php&quot;&gt;&amp;lt;?php
$servername&amp;nbsp;=&amp;nbsp;&amp;quot;***.***.***.***&amp;quot;;
$username&amp;nbsp;=&amp;nbsp;&amp;quot;***&amp;quot;;
$password&amp;nbsp;=&amp;nbsp;&amp;quot;***&amp;quot;;
$dbname&amp;nbsp;=&amp;nbsp;&amp;quot;******&amp;quot;;
&amp;nbsp;
$json&amp;nbsp;=&amp;nbsp;&amp;#39;&amp;#39;;
$data&amp;nbsp;=&amp;nbsp;array();
&amp;nbsp;
class&amp;nbsp;Dustbin&amp;nbsp;
{
	public&amp;nbsp;$id;
	public&amp;nbsp;$name;
	public&amp;nbsp;$title;
	public&amp;nbsp;$content;
	public&amp;nbsp;$longitude;
	public&amp;nbsp;$latitude;
	public&amp;nbsp;$point;
	public&amp;nbsp;$isOpen;
	public&amp;nbsp;$icon;
	public&amp;nbsp;$ip;
	
	public&amp;nbsp;$full_0;
	public&amp;nbsp;$full_1;
	public&amp;nbsp;$full_2;
	public&amp;nbsp;$full_3;
}
&amp;nbsp;
//&amp;nbsp;创建连接
$conn&amp;nbsp;=&amp;nbsp;new&amp;nbsp;mysqli($servername,&amp;nbsp;$username,&amp;nbsp;$password,&amp;nbsp;$dbname);
//&amp;nbsp;Check&amp;nbsp;connection
if&amp;nbsp;($conn-&amp;gt;connect_error)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;die(&amp;quot;连接失败:&amp;nbsp;&amp;quot;&amp;nbsp;.&amp;nbsp;$conn-&amp;gt;connect_error);
}&amp;nbsp;
&amp;nbsp;
$sql&amp;nbsp;=&amp;nbsp;&amp;quot;SELECT&amp;nbsp;id,&amp;nbsp;baidu_lon,baidu_lat,full_0,full_1,full_2,full_3&amp;nbsp;FROM&amp;nbsp;lese&amp;quot;;
$result&amp;nbsp;=&amp;nbsp;$conn-&amp;gt;query($sql);
&amp;nbsp;
if&amp;nbsp;($result-&amp;gt;num_rows&amp;nbsp;&amp;gt;&amp;nbsp;0)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;输出数据
	$index=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while($row&amp;nbsp;=&amp;nbsp;$result-&amp;gt;fetch_assoc())&amp;nbsp;{
		$icon1=array(&amp;quot;w&amp;quot;=&amp;gt;23,&amp;quot;h&amp;quot;=&amp;gt;25,&amp;quot;l&amp;quot;=&amp;gt;0,&amp;quot;t&amp;quot;=&amp;gt;21,&amp;quot;x&amp;quot;=&amp;gt;9,&amp;quot;lb&amp;quot;=&amp;gt;12);
		$icon2=array(&amp;quot;w&amp;quot;=&amp;gt;23,&amp;quot;h&amp;quot;=&amp;gt;25,&amp;quot;l&amp;quot;=&amp;gt;46,&amp;quot;t&amp;quot;=&amp;gt;21,&amp;quot;x&amp;quot;=&amp;gt;9,&amp;quot;lb&amp;quot;=&amp;gt;12);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$dustbin&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Dustbin();
		$dustbin-&amp;gt;id=($index);
		$dustbin-&amp;gt;name=&amp;quot;dustbin&amp;quot;.($index);
		$dustbin-&amp;gt;title=&amp;quot;dustbin&amp;quot;.($index);
		$dustbin-&amp;gt;content=&amp;quot;notes&amp;quot;.($index);
		$dustbin-&amp;gt;ip&amp;nbsp;=&amp;nbsp;$row[&amp;quot;id&amp;quot;];
		$dustbin-&amp;gt;longitude=$row[&amp;quot;baidu_lon&amp;quot;];
		$dustbin-&amp;gt;latitude=$row[&amp;quot;baidu_lat&amp;quot;];
		$dustbin-&amp;gt;point=&amp;quot;&amp;quot;.($row[&amp;quot;baidu_lon&amp;quot;]).&amp;quot;|&amp;quot;.($row[&amp;quot;baidu_lat&amp;quot;]);
		$dustbin-&amp;gt;isOpen=0;
		$dustbin-&amp;gt;full_0&amp;nbsp;=&amp;nbsp;$row[&amp;quot;full_0&amp;quot;];
		$dustbin-&amp;gt;full_1&amp;nbsp;=&amp;nbsp;$row[&amp;quot;full_1&amp;quot;];
		$dustbin-&amp;gt;full_2&amp;nbsp;=&amp;nbsp;$row[&amp;quot;full_2&amp;quot;];
		$dustbin-&amp;gt;full_3&amp;nbsp;=&amp;nbsp;$row[&amp;quot;full_3&amp;quot;];
		$flag&amp;nbsp;=&amp;nbsp;($dustbin-&amp;gt;full_0+$dustbin-&amp;gt;full_1+$dustbin-&amp;gt;full_2+$dustbin-&amp;gt;full_3);
		if&amp;nbsp;($flag&amp;nbsp;==&amp;nbsp;0){
			$dustbin-&amp;gt;icon=$icon1;
		}
		else{
			$dustbin-&amp;gt;icon=$icon2;
		}
		
		array_push($data,$dustbin);
		$index+=1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
	$json&amp;nbsp;=&amp;nbsp;json_encode($data);//把数据转换为JSON数据.
	echo&amp;nbsp;$json;
}&amp;nbsp;else&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo&amp;nbsp;$json;
}
$conn-&amp;gt;close();
?&amp;gt;&lt;/pre&gt;</description><pubDate>Fri, 14 Feb 2020 10:45:01 +0800</pubDate></item></channel></rss>