脚本故事
发布者 The Scripting Guys
谈谈脚本的输出
您是否有过这样的经历,写了一个脚本,当您从命令行运行它时却只看到模糊的一行行数据快速向上翻滚,带走了您创建这个脚本所要获得的所有信息。怎样解决这个问题?你可能会把时间浪费在配置命令行窗口的属性上,加大它的缓冲区;在理论上,这可以使你往上滚动窗口,并查看信息。(为什么说是在“理论上”?因为有些信息可能还是无法显示在命令行窗口中。)
当然,通过上下卷动命令行窗口来了解数据是再简单不过了。但是假如您希望用一种更为永久的格式将其暂时存储到一个文档中该怎么办?听起来没有办法做到这一点是吗?那么,既然 没有希望,我们就下个月再见吧。
不,我们只是在开个玩笑;使用脚本,就 总有 希望。事实证明,有一些简单的方法可以创造更具有可读性,也更为持久的输出。例如,您可以使用命令外壳的重定向器 ( > 符号) 来向文本文档发送输出而不是将其显示在外壳窗口中。这样,您可以使用任何使用了 Wscript.Echo 语句的脚本来显示输出,也就是将输出保存为文本文档。而要做到这一切,只要写一行简单的代码就能完成。
尝试一下用以下 WMI 脚本输出的重定向技术,它能显示有关进程的信息。
Set objWMI = _
GetObject("winmgmts:{impersonationLevel=impersonate}//./root/cimv2")
Set colProcesses = objWMI.ExecQuery("SELECT * FROM Win32_Process")
For Each objProcess In colProcesses
WScript.Echo "进程名称: " & objProcess.Name
WScript.Echo "可执行文件的路径: " & objProcess.ExecutablePath
WScript.Echo ".............................................."
WScript.Echo vbCrLf
Next
将脚本输入文字编辑器,例如记事本,将其另存为一个以.vbs为扩展名的文档。当你保存这个脚本时,请确保这个记事本文档不要被添上了 .txt 的扩展名,不要将它命名为 MyScript.vbs.txt 。也许更容易“注意”到这点的做法是当您向记事本文档名的文本框中录入的时候,就用双引号将您所选择的文档名引起来(例如,“DisplayProcesses.vbs”)。换句话说就是:
当您在命令提示符中输入 cscript DisplayProcesses.vbs 来运行脚本时,您可能无法看清命令行窗口中的信息,所有在电脑上运行程序所得到的结果都一闪而过(但是这取决于您的电脑上运行着多少程序)。
现在,再次运行脚本,这一次脚本的输出将被重定向到一个名为 output.txt 的文本文档。在命令提示符中输入 cscript DisplayProcesses.vbs > output.txt 。这次您就不会在命令行窗口中看到任何输出了。为什么呢?因为您已经命令脚本创造了一个新的文本文档,名为 output.txt ,文档内容即是 DisplayProcesses.vbs. 的输出结果,不相信?那么请在命令提示符中输入 notepad output.txt , 用记事本中打开新建的文档来证明一下吧。正如您将看到的那样,您现在拥有了一份最后一次运行脚本时,电脑所运行程序的永久报告。想一想,您的老板可能刚才还说您什么也没干呢!
哦,请等一下:我是说 我们的 老板。
假如您再次运行这个脚本并再次将输出定向到 output.txt ,那么新的结果会覆盖上一次存储在该文档中的结果;这是 > 符号的工作方式造成的。您可以改变这一点,将 dir 命令的输出定向到 output.txt 然后检查结果。只要输入 dir > output.txt 然后再输入 notepad output.txt 。您将会发现. dir 命令的输出已经覆盖了您先前存在该文档中的程序输出信息。
这看起来很不错,但是假如您想 添加数据 而不是覆盖数据应该怎么办呢?这种情况下,就要运用 >> 重定向命令来代替它。试试吧。在提示符中输入 cscript DisplayProcesses.vbs >> output.txt 。然后输入 notepad output.txt 注意到来自dir的输出仍然存在,而来自 DisplayProcesses.vbs 脚本的输出则被添加到了文档的最末尾。
虽然外壳定向是将脚本输出保存到文档的最简易方法,但是您还是可以多次练习以掌握如何运用 FileSystemObject 将信息存入文档中。FileSystemObject 是一个存在于 Scripting Runtime Library (包括在 WSH 中)的组件,它能使您的脚本能够利用各个文档和文件夹。您可以进行复制、删除,当然也可以从中读取或是写入文本文档。
提示: 想要了解有关 FileSystemObjectWant 在更多信息吗?请参阅题为 Windows 2000 Scripting Guide 的文章。 FileSystemObject 。
为了介绍如何使用 FileSystemObject,我们整理一个十分简单的脚本,它创建了一个名为 fsoutput.txt 的文档, 我们在其中写入一行简单的内容。内容是一个包含有题目及创建日期和时间的标题。如下所示:
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objNewFile = objFS.CreateTextFile("fsoutput.txt")
objNewFile.WriteLine "Header Information -- Date: " & Now()
objNewFile.Close
试验一下。希望您现在就了解所需的步骤:在记事本中输入脚本,然后将其以 .vbs 的扩展名进行保存(干脆就叫 CreateNewFile.vbs 吧)。输入 cscript CreateNewFile.vbs 然后再输入 notepad fsoutput.txt 来看看结果。您应该能看到如下所示的结果:
您可能会发现,将数据保存到文档中的步骤和在命令窗口中显示数据的步骤是极其相似的。虽然所得到的结果完全不同,但其间达成任务的方法却十分相似。当您向屏幕输入时您使用 WScript.Echo;而您写文档时使用的是 WriteLine 方法。不同的是一个必须要创建 FileSystemObject 的实例,而另一个是必须创建一个保存数据的文本文档,这两个步骤是相同的。
让我们使用 DisplayProcesses 脚本,修改后将其数据保存到一个文档中,而不是在命令行窗口中显示它。脚本在被修改后显示如下:
Set objWMI = _
GetObject("winmgmts:{impersonationLevel=impersonate}//./root/cimv2")
Set colProcesses = objWMI.ExecQuery("SELECT * FROM Win32_Process")
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objNewFile = objFS.CreateTextFile("writeoutput.txt")
objNewFile.WriteLine "Process Report -- Date: " & Now() & vbCrLf
For Each objProcess In colProcesses
objNewFile.WriteLine "进程名称:" & objProcess.Name
objNewFile.WriteLine "可执行文件的路径:" & objProcess.ExecutablePath
objNewFile.WriteLine _
".............................................."
objNewFile.WriteLine vbCrLf
Next
objNewFile.Close
运行此脚本,并看看记事本中的输出。您将看到以下内容:
提示: 这个特殊的脚本将总是覆盖 WriteOutput.txt 文档。为了向文档中添加数据,我们要打开文本文档,而不是用 CreatleTextFile 的方法创建一个新的文档。想要了解关于打开文本文档(并将数据添加到这些文档)的信息,请参阅 Windows 2000 Scripting Guide 中 将数据写入文本文件 部分。
好了,现在看上去比原先在命令提示符窗口中看不清信息好多了(顺便说一句,假如 仍然 看不清,那么一定是您的显示器该清理了)。只是,要是能加上一点格式就更好了。对于这一点,一些更加结构化的格式,就像您在一些基于站点的报告工具中看到的那样,都是很不错的东西。事实上,我们也可以利用一些 HTML( 超文本链接标记语言)来组成我们 自己的 基于站点的报告工具。
虽然您不熟悉 HTML,但也不用害怕。脚本专家组将专门花 30 秒的时间来为您介绍 HTML。HTML 是一种标记语言(也就是HTML的最后两个字母所代表的含义)。为了理解标记语言的概念,您可能要编辑一篇大约1200字的文章。文章开头就是介绍这种语言大致是为了提示段落从哪里开始,哪里结束,哪里一些词字应该组成一个标题下的文章。您可能会采取一些措施来标记文章的标题,加下划线,用粗体 ,或 斜体 来强调一些单词和有解释性的句子。
假如您希望将一些内容突出为标题,那么您可以它用引号引起来,并标记为“Title(标题)”。有些人标记标题的方法可能会有一点不同;例如,他们可能加下划线或是直接标注为“Article Title(文章标题)”。不论用哪种方法,您都是在形成自己的标记语言。
那么您自己的标记语言和 HTML 有什么不同呢?有两点不同:1)软件程序被设计为能够诠释 HTML,2)HTML 是一种预设的标记语言,是全世界通用的。除此之外,HTML 实际 与您所设计的标记语言没有区别:只是一种将无格式文本进行格式化,使其能在 Web 浏览器上被显示的方法。
在 HTML 中,您将运用标签(通常成对出现)来标记文件。例如您为了标记顶级标题,您必须将所需内容用
标签(这个符号表示“从这里开始,将后面所有的内容作为 H1 级的标题”)和 标签(这个符号表示“从这里开始停止将内容作为 H1 级的标题,之后的内容返回默认设置”)括起来。因此假如您的顶级标题是 Windows Management Instrumentation,那么您就使用以下的 HTML 格式:
Windows Management Instrumentation
每一篇 HTML 文件中都有一些核心结构用于标记文件头(header)和正文。头部分包括了有关文件的各种元数据,至少应该包括标题。以下便是最小的 HTML 文件:
标题
Windows 管理规范
尝试着将上述的 HTML 输入记事本,将其保存为以 .htm 为扩展名的文档,名字就叫 minimal.htm 吧。然后在命令提示符中输入 minimal.htm ,就可以在 Internet Explorer 中查看它了。您将看到如下所示的内容:
因此,现在您就成为了一个 Web 设计专家。假如现在是九十年代中期,那么您的下一步就可能是一个商业计划书或者一个10 亿美元的 IPO 了。但是现在我们是在21 世纪(哦,至少我们中的大多数是如此),我们最好回到工作中去,看看这一新信息是否能被充分利用。
现在,在我们开工之前,我们知道您在想些什么。您在想,“ 嗯,脚本专家们,我是一个系统管理员,可不是个 Web 开发人员。为什么你们要告诉我这些呢?我甚至连 FrontPage 都没有呢!”好吧,那就别再想我们刚才做的那些事儿了:我们用记事本创建了一个 Web 页。这是因为我们运用了一些大众无法得到的超强的 Notepad XP 吗?不是的;是因为 Web 页本身就是文本文档;这就意味着您能够使用任何一种文字编辑器,或使用一个脚本来创建它们。您根本不需要用 FrontPage 来创建那种看上去很酷的 Web 报告。
哦,请千万别告诉 Microsoft 的人您不需要 FrontPage,好吗?
好吧。让我们将 DisplayProcesses 脚本重写一遍,但这次我们将创建一个 .htm 文档和并且使用一些 HTML 标记。注意,当您运行这一脚本时,似乎什么也没有发生。这是因为我们没有将输出显示在屏幕上,而是写进了一个 HTML 文档中。
以下就是我们重写的脚本:
Set objWMI = _
GetObject("winmgmts:{impersonationLevel=impersonate}//./root/cimv2")
Set colProcesses = objWMI.ExecQuery("SELECT * FROM Win32_Process")
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objNewFile = objFS.CreateTextFile("htmloutput.htm")
objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.WriteLine "Process Report "
objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.WriteLine "Process Report -- Date: " & Now() & _
" " & vbCrLf
For Each objProcess In colProcesses
objNewFile.WriteLine "Process Name: " & objProcess.Name
objNewFile.WriteLine "Executable Path: " & objProcess.ExecutablePath
objNewFile.WriteLine _
".............................................."
objNewFile.WriteLine vbCrLf
Next
objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.Close
在运行脚本后,请输入 htmloutput.htm 打开最终的 HTML 页(名称为 htmloutput.htm)。您将看到与以下内容相似的内容:
首先,看一看这个脚本运行的时间:凌晨1点!呵呵,我们最好找点别的爱好。无论怎样,这只是个开始(我们 的确 创建了一个 Web 页),但是还必须做一些工作才能使这些信息变得可读。考虑一下,这样的数据要是能在表格里就好了。我们假定:HTML 支持表格。(最好它能支持,否则我们可就结束不了这个专栏了。)
创建 HTML 表格是十分简单的,虽然头一眼看上去它有点神秘。一个表格在开始时用
标签表示。表格中的行用成对的
标记,第一行中的列则用成对的
来标记(我们
告诉过 您它头一眼看上去有点神秘)。以下是一个简单 HTML 表格的示例:
1st column of 1st row 2nd column of 1st row
1st column of 2nd row 2nd column of 2nd row
修改我们的脚本,使其将其输出导入到一个 HTML 表格。以下是被修改的脚本:
Set objWMI = _
GetObject("winmgmts:{impersonationLevel=impersonate}//./root/cimv2")
Set colProcesses = objWMI.ExecQuery("SELECT * FROM Win32_Process")
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objNewFile = objFS.CreateTextFile("htmloutput.htm")
objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.WriteLine "Process Report "
objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.WriteLine "Process Report -- Date: " & Now() & _
" " & vbCrLf
objNewFile.WriteLine " "
For Each objProcess In colProcesses
objNewFile.WriteLine ""
objNewFile.WriteLine _
"Process Name: " & objProcess.Name & " "
objNewFile.WriteLine "Executable Path: " & _
objProcess.ExecutablePath & " "
objNewFile.WriteLine " "
Next
objNewFile.WriteLine "
"
objNewFile.WriteLine ""
objNewFile.WriteLine ""
objNewFile.Close
请注意我们在开放的
标记中添加了 BORDER=1 。这可能正是您所期盼的,它能让表格显示边框。
当然,该表格的输出可能会有点不好理解。还有以下内容:
我们首先写下开放的表格标签
,然后,我们就进入循环。这确保了我们只设计一个表格,且这个表格就是我们想得到的表格。在每个循环中的第一笔就是要写上 标记,以标记新的一行。因此,我们每一次通过这个循环,我们都会重起一行。这就代表了每一次通过循环所代表的都是有关一个单独步骤的信息,而且这也是我们希望能在表格中以单独一行到显示的信息。
到现在为止,一切还都不错是吗?接下来就是完成每一行中的列了。利用一对
标记来将属性的名称(Process Name, Executable Path)列在同一列中,而另一组 标记则被用于将相应的值导入同一列中。最后,在退出循环前,我们用 标记来结束行。
结果显示的 htm 页面应与以下相似:
它可能不能赢得什么图形设计奖项,但它却能很好地被读懂,比那些模糊且乱作一团的命令提示符输出好多了。假如您在 MSDN 和 Web 上进行查询,您将找到一大堆有关 HTML 的信息和如何制作网页的内容,看上去相当内行。我们就把那些细节上的内容留给您作练习吧。毕竟,这个专栏是系统管理脚本的,而不是网站设计。
提示: 您是对的;运行这个脚本真的是很酷,Web 页会自动地出现在屏幕上。您是怎么做到的?这有一种方法:只要在脚本末尾添上这两行就行了:
Set objShell = Wscript.CreateObject("Wscript.Shell")
objShell.Run "htmloutput.htm"
我们将结束本月的漫谈,最后要告诉您的是一种将输出导入到 Excel 的便捷方法。Excel 拥有丰富且可以编写脚本的对象模型,它能使您从脚本中创建真正够酷的电子数据表。但是,时间不早了,我们的篇幅也有限。根据脚本真正的精神所在,让我们选择一条阻力最小的道路。我们将修改我们的脚本,并将其输出到 csv(逗号分隔符) 格式,我们可以在 Excel 中打开它。
以下便是修改后的脚本:
Set objWMI = _
GetObject("winmgmts:{impersonationLevel=impersonate}//./root/cimv2")
Set colProcesses = objWMI.ExecQuery("SELECT * FROM Win32_Process")
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objNewFile = objFS.CreateTextFile("output.csv")
objNewFile.WriteLine "Process Name,Executable Path"
For Each objProcess In colProcesses
objNewFile.WriteLine objProcess.Name & "," & _
objProcess.ExecutablePath
Next
objNewFile.Close
这个脚本是极其简单的。它输出了两个以逗号隔开的标题(Process Name 和 Executable Path),继而输出用逗号隔开的 Name 和 ExecutablePath 属性。假如您在记事本文档中将其打开,就会如下所示:
Process Name,Executable Path
System Idle Process,
System,
Smss.exe,C:/WINDOWS/System32/smss.exe
为了在 Excel (假定您的机器中已经安装了 Excel )中看到这个脚本的运行结果,请在命令提示符中输入 output.csv 。您将看到如下所示的内容:
当然,这是种“欺骗”,但是谁知道呢?毕竟,对我们而言,它看上去很像一个不错的电子数据表。
这次我们就为您讲这么多;毕竟,脚本专家们也是要睡觉的。我们希望这个专栏能是您关于输出格式试验的开始。我们仅仅了解了些皮毛,知道了您可以从脚本中的哪个地方发送输出。例如,ADO 是一种能使您向各种数据存储进行输出的技术,包括 Access 和 SQL Server,当然,XML 是当前 最流行的 。 您可以轻而易举地将您的脚本输出存储在 XML 格式中(XML 也只是另一种文本文档而已),与 Windows 源代码中的分号相比,它带来了更多的可能性。
嗯,这意味着有很多种可能,因为在 Windows 源代码中有许多的分号。
在下次见面之前,停止一切幻想吧:脚本!
要获得有关脚本专栏的所有内容和附加信息,点击此处 。
脚本热讯!
人们常常写信给我们问,“下次有新的脚本故事 或是有新脚本被添加到 TechNet 脚本中心时能通知我们吗?”我们总是告诉他们,“我们看上去像您的贴身仆人吗?”哦,现在我们的回应更有礼貌了(也更有用了)。当 TechNet 脚本中心有新成员加入时也要通知您吗?脚本界有了最新的头条新闻也要通知您吗?假如是这样的话,请您注册我们的 脚本热讯 ,它将每月更新,报导脚本中心及脚本领域的最新发展。点击以下链接,很快您就将通过电子邮件获得您第一期的脚本热讯 (哦不,现在还没有计划开发 swimsuit 版本):
注册 脚本新闻专线 。
本文章转自:http://www.microsoft.com/china/technet/community/columns/scripts/sg0403.mspx
你可能感兴趣的:(脚本)
python 读excel每行替换_Python脚本操作Excel实现批量替换功能
weixin_39646695
python 读excel每行替换
Python脚本操作Excel实现批量替换功能大家好,给大家分享下如何使用Python脚本操作Excel实现批量替换。使用的工具Openpyxl,一个处理excel的python库,处理excel,其实针对的就是WorkBook,Sheet,Cell这三个最根本的元素~明确需求原始excel如下我们的目标是把下面excel工作表的sheet1表页A列的内容“替换我吧”批量替换为B列的“我用来替换的
大学社团管理系统(11831)
codercode2022
java spring boot spring echarts spring cloud sentinel java-rocketmq
有需要的同学,源代码和配套文档领取,加文章最下方的名片哦一、项目演示项目演示视频二、资料介绍完整源代码(前后端源代码+SQL脚本)配套文档(LW+PPT+开题报告)远程调试控屏包运行三、技术介绍Java语言SSM框架SpringBoot框架Vue框架JSP页面Mysql数据库IDEA/Eclipse开发四、项目截图有需要的同学,源代码和配套文档领取,加文章最下方的名片哦!
开启 PHP 初阶之旅:解锁高效入门之道
API_Zevin
php 开发语言 人工智能 大数据 前端 python 后端
在当今动态网页开发领域,PHP作为一门久经沙场的服务器端脚本语言,以其强大功能与广泛适用性,持续吸引着无数初学者踏入编程殿堂。若你决心攻克PHP,为Web开发世界添砖加瓦,一系列精准策略与实用方法将成为你加速入门的得力伙伴,引领你穿越初期懵懂,迈向熟练驾驭的新征程。一、筑牢基础:语法地基稳扎稳打PHP语法虽具灵活性,初学者仍需系统研习,构建扎实根基。从变量声明起步,领会PHP变量“$”符号前缀特色
Moviepy怎样使用?
MoviePy是一个用于视频编辑和视频脚本编写的Python库。以下是使用MoviePy的步骤:安装MoviePy:在命令行中运行pipinstallmoviepy来安装MoviePy库。导入MoviePy:在Python脚本中导入MoviePy库,通常使用importmoviepy.editorasmp。创建视频对象:使用mp.VideoFileClip('视频文件路径')来创建一个视频对象。视
【Appium】selenium.common.exceptions.WebDriverException: Message: The requested resource could not be
枫萏
Appium踩坑达人 appium
1、报错内容(1)脚本报错内容在PyCharm编写好脚本后,模拟器和appium也是连接成功的,但是运行脚本时报错:selenium.common.exceptions.WebDriverException:Message:Therequestedresourcecouldnotbefound,orarequestwasreceivedusinganHTTPmethodthatisnotsuppo
Linux Shell 中~流程控制
光年像素
linux linux
在LinuxShell中,流程控制是编写脚本的核心能力,用于根据条件执行不同操作(条件判断)、重复执行代码块(循环)或封装可复用功能(函数)。以下是详细讲解及示例:一、条件判断条件判断用于根据表达式的真假(0为真,非0为假)决定代码执行路径。Shell支持多种条件判断语法,适用场景不同。1.if[条件]与test命令if语句的基本结构,[条件]等价于test条件([是test的同义符号,需注意[后
Unity编辑器拓展(Atrribute/Event.current)
萧寒大大
Unity编辑器拓展 unity 编辑器 游戏引擎
常用Atrribute1.InitializeOnLoad//加载脚本时初始化2.InitializeOnLoadMethod//在Unity加载时初始化编辑器类方法3.DidReloadScripts//重新加载脚本后调用方法4.PostProcessScene//加载场景调用方法5.PostProcessBuild//打包完成调用方法6.OnOpenAsset//用于打开Unity中某个资源的
在shell脚本中创建动态变量,并引用存储在动态变量中的值
企鹅与蟒蛇
Linux bash 开发语言
Contents1.要求:动态创建变量名,并引用动态变量名2.实现:2种方式2.1.指针变量的形式(PointerVariable)2.2.数组的形式(Array)3.References1.要求:动态创建变量名,并引用动态变量名在shell脚本中动态生成一组变量名,并引用生成的变量名。示例如下:var_$n=$n+2,最终得到如下表达式var_1=3var_2=5var_3=72.实现:2种方式
零基础学习性能测试第九章:全链路追踪-项目实操
试着
性能测试 学习 性能测试 零基础
目录一、实战项目架构(电商下单系统)二、环境搭建(30分钟)1.使用DockerCompose一键部署2.启动命令三、项目集成SkyWalking1.SpringBoot项目添加Agent2.关键业务代码埋点四、全链路压测实战1.JMeter压测脚本配置2.执行压测命令五、全链路追踪分析实战1.在SkyWalking中定位瓶颈2.真实瓶颈分析案例六、中间件性能分析1.Redis性能分析2.MySQ
Python,C++,go语言开发社会犯罪人群回归社会跟踪与辅助管理APP
Geeker-2025
python c++ golang
开发一款用于**社会犯罪人群回归社会跟踪与辅助管理**的App,结合Python、C++和Go语言的优势,可以实现高效的数据处理、实时的跟踪监控以及用户友好的前端界面。以下是一个详细的开发方案,涵盖技术选型、功能模块、开发步骤等内容。##技术选型###后端(Python+Go)-**编程语言**:-**Python**:用于数据处理、机器学习(如风险评估、行为预测)、脚本编写等。-**Go**:用
Matlab医学图像配准工具箱使用指南
远方之巅
本文还有配套的精品资源,点击获取简介:医学图像配准是一个关键的IT技术,特别是对于不同条件下的医学图像分析至关重要。’fordanic/image-registration’是一个Matlab工具箱,它提供了易于使用的接口和算法,助力研究人员和工程师高效准确地完成医学图像配准工作。工具箱内包含了多个示例脚本,详细演示了二维和三维空间中的图像配准步骤,包括图像预处理、特征检测、相似性度量、几何变换模
pyqt 事件监听_PyQt5:PyQt5 信号与槽(PyQt5的事件处理机制)
马老鼠的狗鸭子
pyqt 事件监听
一、事件在事件模型,有三个参与者:事件源、事件目标、事件对象。事件源:状态发生改变的对象,它产生事件Source_Obj事件目标:是想要被通知的对象Target_Obj事件对象:封装了事件源中的状态变化Evnet_ObjPyQt5有一个独一无二的信号和槽机制来处理事件。信号和槽用于对象之间的通信。当指定事件发生,一个事件信号会被发射。槽可以被任何Python脚本调用。当和槽连接的信号被发射时,槽会
Python 使用期物处理并发(显示下载进度并处理错误)
显示下载进度并处理错误前面说过,17.1节中的几个脚本没有处理错误,这样做是为了便于阅读和比较三种方案(依序、多线程和异步)的结构。为了处理各种错误,我创建了flags2系列示例。flags2_common.py这个模块中包含所有flags2示例通用的函数和设置,例如main函数,负责解析命令行参数、计时和报告结果。这个脚本中的代码其实是提供支持的,与本章的话题没有直接关系,因此我把源码放在附录A
实现ABAQUS边界条件批量加载的高效工作流
月小烟
本文还有配套的精品资源,点击获取简介:在使用ABAQUS软件进行有限元分析时,边界条件的设置对工程问题模拟至关重要。通过ABAQUS的批处理功能实现边界条件的批量加载可以大幅提升工作效率,特别是在处理大量相似模型时。本文将深入探讨如何通过编写脚本文件来自动化边界条件的设置,包括固定约束、荷载以及初始条件,并介绍使用Python脚本和循环结构来对多个模型进行边界条件的应用。此外,本文还将说明批处理命
即便你已经在浏览器中启用了 JavaScript有时网页依然可能出现功能失效、内容加载不完整或按钮点击无反应等问题。这些问题通常由 JavaScript 冲突
即便你已经在浏览器中启用了JavaScript有时网页依然可能出现功能失效、内容加载不完整或按钮点击无反应等问题。这些问题通常由JavaScript冲突、浏览器设置不当或插件干扰等原因引起。作为HostEase的技术人员我将为你提供一系列简单有效的JavaScript故障排除方法帮助你快速定位并解决这些问题。禁用可能干扰JavaScript的浏览器扩展,广告拦截器,安全插件或某些脚本管理器可能会干
技术文章大纲:Anaconda插件开发挑战赛引言介绍Anaconda在数据科学和PythonUH开发中的重要性
aadwje
eclipse ide
即便你已经在浏览器中启用了JavaScript有时网页依然可能出现功能失效、内容加载不完整或按钮点击无反应等问题。这些问题通常由JavaScript冲突、浏览器设置不当或插件干扰等原因引起。作为HostEase的技术人员我将为你提供一系列简单有效的JavaScript故障排除方法帮助你快速定位并解决这些问题。禁用可能干扰JavaScript的浏览器扩展,广告拦截器,安全插件或某些脚本管理器可能会干
GitHub下载教程:2025年最新详解从GitHub上传、下载文件、子目录与完整项目【图文教程】
猫头虎
github 开源 git gitcode gitee gitea svn
GitHub下载教程:2025年最新详解从GitHub上传、下载文件、子目录与完整项目【图文教程】摘要本篇针对中国大陆(北京/上海/广州/深圳)及全球开发者量身打造,涵盖:单个文件下载(Raw+浏览器/脚本/DownGit)子目录下载(DownGit+gitsparse-checkout+脚本)子模块与子树下载整库下载(gitclone+GitHubCLI+DownloadZIP)加速与镜像(Fa
构建专业级量化交易回测引擎:从Python代码到云端部署
wh3933
python 开发语言
引言量化交易的世界中,回测(Backtesting)并非简单的历史数据模拟,它是连接交易思想与市场现实的桥梁,是策略从雏形走向成熟的必经之路。一个严谨的回测流程,能够以科学的方法检验策略的有效性、揭示其潜在风险,并将交易决策从情绪驱动转向数据驱动。构建一个强大的回-测引擎,其意义远超编写一段脚本;它是在构建一个个人专属的金融实验室,用于系统性地开发、验证和迭代交易思想。本报告旨在提供一份全面而深入
linux字符模式关闭光标
雨中来客
Linux系统驱动开发 Linux平台开发 linux
在Linux终端中,光标通常用于指示当前的位置,比如在文本编辑或命令行操作中。如果你想要在特定的场景下关闭光标,比如在编写脚本或执行某些命令时,你可以使用以下几种方法来实现。1.在命令行终端使用echo命令在bash或其他shell中,你可以使用echo命令结合特定的序列来关闭光标。例如:echo-e"\e[?25l"这条命令会关闭光标。如果你想恢复光标显示,可以使用:echo-e"\e[?25h
kh dksl.php,php中取得URL的根域名的代码
克勒kk
kh dksl.php
php中取得URL的根域名的代码发布于2014-12-1310:14:08|121次阅读|评论:0|来源:网友投递PHP开源脚本语言PHP(外文名:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。本文为大家讲解的是php
Linux服务器安全自动化审计实战:一键扫描账户/网络/进程/计划任务风险(附开源脚本)
测试不设限
服务器 linux 安全
一、背景与痛点:为什么需要安全审计脚本?在日常服务器运维中,安全团队常面临三大挑战:人工巡检效率低下:手动检查账户、网络连接等需执行十余条命令隐蔽威胁难发现:异常计划任务、伪装进程等易被忽略合规压力:等保2.0等规范要求定期安全审计为此,我们开发了这款开源的Linux安全自动化审计脚本,可实现:5分钟内完成全维度安全检查输出结构化风险报告关键风险项自动标红预警二、脚本核心功能架构安全审计脚本账户安
2020-01-16 bat脚本例子 隐藏黑框
木人呆呆
隐藏黑框@echooff%1mshtavbscript:CreateObject("WScript.Shell").Run("%~s0::",0,FALSE)(window.close)&&exit::开始启动软件java-jarMicro-Service-Skeleton-Register-2.0.0.jarping127.0.0.1-n15>nuljava-jarMicro-Service-S
Ubuntu下MATLAB不能保存路径设置的解决办法(借助MATLAB启动项修改)
LyaPan
ubuntu matlab linux
我的Ubuntu22.04上的MATLABR2023a不能保存路径设置,每次重启都需要重新设置路径,很是麻烦。网上一搜,全是说给pathdef.m加权限就能解决的,但实际操作下来发现还是没用。经探索,另一种方式就是通过修改启动文件来修改启动选项了,这样每次启动MATLAB时都会自动执行我们的脚本。下面对此进行介绍:使用MATLAB启动文件(StartupFile)修改启动选项可以用startup.
python sys模块
模块说明sys模块是python标准库中的一个模块,是一个与python解释器交互的接口。sys模块提供了解释器使用和维护的一些变量的访问,以及提供一些函数来处理python运行时环境的不同部分。通用工具脚本经常调用命令行参数。这些命令行参数以链表形式存储于sys模块的argv变量。例如在命令行中执行“pythondemo.pyonetwothree”后可以得到以下输出结果:>>>importsy
高级07-Java安全编程:保护你的应用免受攻击
Jinkxs
Java高级篇 安全 java
引言在当今的数字时代,应用程序的安全性已成为软件开发过程中不可忽视的重要环节。Java作为一门广泛应用于企业级应用开发的编程语言,其安全性问题尤其受到关注。无论是在Web应用、移动应用还是后端服务中,Java开发者都需要面对各种潜在的安全威胁,如SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、身份验证漏洞等。因此,掌握Java安全编程的最佳实践,不仅能够提升应用程序的健壮性,还能有效
python的sys模块
小__Q
python
前言:该模块提供了对解释器使用或维护的一些变量以及与解释器进行强交互的函数的访问。它总是可用的。sys.argv传递给python脚本的命令行参数列表。其中sys.argv[0]是脚本名称,即第一个参数。比如:E:\PycharmProjects\Thread>pythondemo02.py-ffnkw-vnjewf-t5641参数列表为:['demo02.py','-f','fnkw','-v'
python中的sys模块
DevGeek
python全栈 python 开发语言
sys中的常用方法首先第一个功能是modules,它并不是一个函数。而是一个属性,后面不用加括弧。通过调用它会返回一个列表。它会将Python启动时候所加载的模块全部集合起来。一会儿让我们来看看它们长什么样子。第二个功能是path它依然是一个属性,通过system调用path属性。可以返回当前Python的环境路径。不过这里说的环境路径可不是我们当前Python脚本执行的路径。我们可以认为是当前P
selenium完整版一览
paid槮
selenium 测试工具
selenium库驱动浏览器selenium库是一种用于Web应用程序测试的工具,它可以驱动浏览器执行特定操作,自动按照脚本代码做出单击、输入、打开、验证等操作,支持的浏览器包括IE、Firefox、Safari、Chrome、Opera等。而在办公领域中如果经常需要使用浏览器操作某些内容,就可以使用selenium库来实现,例如将大量数据上传到网页中或者实现自动驱动浏览器进行操作。与reques
局域网共享修复工具一键搞定链接 权限问题,脚本工具简单又实用
嘉欣软件园
算法 电脑 开源软件
各位被局域网共享整到崩溃的小伙伴们,你们有没有过这种经历,想给同事传个文件,结果点半天“网络邻居”跟便秘似的一动不动,急得你想把电脑从窗户扔出去?或者打印机共享死活连不上,眼睁睁看着领导在旁边催,你却只能对着屏幕干瞪眼?别慌,今天给你们安利一个堪称“局域网共享华佗”的神器——局域网一键共享修复工具,听名字就知道,专治各种共享不服!软件下载地址安装包你知道吗,这货可不是来卖萌的,它是专门解决局域网里
CentOS Stream10操作系统企业级初始化和安全优化
韩公子的Linux大集市
Bash入门 centos 安全 linux
文章目录脚本核心功能说明使用说明以下是为CentOSStream10设计的专业级系统优化脚本,整合了安全加固、性能调优、资源管理及审计功能,严格遵循企业级运维规范:#!/usr/bin/envbash#文件名:centos10_enterprise_optimizer.sh#描述:CentOSStream10专业级系统优化脚本(安全加固+性能调优)#版本:7.0#最后更新:2025-07-28#特
多线程编程之存钱与取钱
周凡杨
java thread 多线程 存钱 取钱
生活费问题是这样的:学生每月都需要生活费,家长一次预存一段时间的生活费,家长和学生使用统一的一个帐号,在学生每次取帐号中一部分钱,直到帐号中没钱时 通知家长存钱,而家长看到帐户还有钱则不存钱,直到帐户没钱时才存钱。
问题分析:首先问题中有三个实体,学生、家长、银行账户,所以设计程序时就要设计三个类。其中银行账户只有一个,学生和家长操作的是同一个银行账户,学生的行为是
java中数组与List相互转换的方法
征客丶
JavaScript java jsonp
1.List转换成为数组。(这里的List是实体是ArrayList)
调用ArrayList的toArray方法。
toArray
public T[] toArray(T[] a)返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。如果列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此列表的大小分
Shell 流程控制
daizj
流程控制 if else while case shell
Shell 流程控制
和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法):
<?php
if(isset($_GET["q"])){
search(q);}else{// 不做任何事情}
在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else,就像这样 if else if
if 语句语
Linux服务器新手操作之二
周凡杨
Linux 简单 操作
1.利用关键字搜寻Man Pages man -k keyword 其中-k 是选项,keyword是要搜寻的关键字 如果现在想使用whoami命令,但是只记住了前3个字符who,就可以使用 man -k who来搜寻关键字who的man命令 [haself@HA5-DZ26 ~]$ man -k
socket聊天室之服务器搭建
朱辉辉33
socket
因为我们做的是聊天室,所以会有多个客户端,每个客户端我们用一个线程去实现,通过搭建一个服务器来实现从每个客户端来读取信息和发送信息。
我们先写客户端的线程。
public class ChatSocket extends Thread{
Socket socket;
public ChatSocket(Socket socket){
this.sock
利用finereport建设保险公司决策分析系统的思路和方法
老A不折腾
finereport 金融保险 分析系统 报表系统 项目开发
决策分析系统呈现的是数据页面,也就是俗称的报表,报表与报表间、数据与数据间都按照一定的逻辑设定,是业务人员查看、分析数据的平台,更是辅助领导们运营决策的平台。底层数据决定上层分析,所以建设决策分析系统一般包括数据层处理(数据仓库建设)。
项目背景介绍
通常,保险公司信息化程度很高,基本上都有业务处理系统(像集团业务处理系统、老业务处理系统、个人代理人系统等)、数据服务系统(通过
始终要页面在ifream的最顶层
林鹤霄
index.jsp中有ifream,但是session消失后要让login.jsp始终显示到ifream的最顶层。。。始终没搞定,后来反复琢磨之后,得到了解决办法,在这儿给大家分享下。。
index.jsp--->主要是加了颜色的那一句
<html>
<iframe name="top" ></iframe>
<ifram
MySQL binlog恢复数据
aigo
mysql
1,先确保my.ini已经配置了binlog:
# binlog
log_bin = D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.log
log_bin_index = D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.index
log_error = D:/mysql-5.6.21-win
OCX打成CBA包并实现自动安装与自动升级
alxw4616
ocx cab
近来手上有个项目,需要使用ocx控件
(ocx是什么?
http://baike.baidu.com/view/393671.htm)
在生产过程中我遇到了如下问题.
1. 如何让 ocx 自动安装?
a) 如何签名?
b) 如何打包?
c) 如何安装到指定目录?
2.
Hashmap队列和PriorityQueue队列的应用
百合不是茶
Hashmap队列 PriorityQueue队列
HashMap队列已经是学过了的,但是最近在用的时候不是很熟悉,刚刚重新看以一次,
HashMap是K,v键 ,值
put()添加元素
//下面试HashMap去掉重复的
package com.hashMapandPriorityQueue;
import java.util.H
JDK1.5 returnvalue实例
bijian1013
java thread java多线程 returnvalue
Callable接口:
返回结果并且可能抛出异常的任务。实现者定义了一个不带任何参数的叫做 call 的方法。
Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。
ExecutorService接口方
angularjs指令中动态编译的方法(适用于有异步请求的情况) 内嵌指令无效
bijian1013
JavaScript AngularJS
在directive的link中有一个$http请求,当请求完成后根据返回的值动态做element.append('......');这个操作,能显示没问题,可问题是我动态组的HTML里面有ng-click,发现显示出来的内容根本不执行ng-click绑定的方法!
 
【Java范型二】Java范型详解之extend限定范型参数的类型
bit1129
extend
在第一篇中,定义范型类时,使用如下的方式:
public class Generics<M, S, N> {
//M,S,N是范型参数
}
这种方式定义的范型类有两个基本的问题:
1. 范型参数定义的实例字段,如private M m = null;由于M的类型在运行时才能确定,那么我们在类的方法中,无法使用m,这跟定义pri
【HBase十三】HBase知识点总结
bit1129
hbase
1. 数据从MemStore flush到磁盘的触发条件有哪些?
a.显式调用flush,比如flush 'mytable'
b.MemStore中的数据容量超过flush的指定容量,hbase.hregion.memstore.flush.size,默认值是64M 2. Region的构成是怎么样?
1个Region由若干个Store组成
服务器被DDOS攻击防御的SHELL脚本
ronin47
mkdir /root/bin
vi /root/bin/dropip.sh
#!/bin/bash/bin/netstat -na|grep ESTABLISHED|awk ‘{print $5}’|awk -F:‘{print $1}’|sort|uniq -c|sort -rn|head -10|grep -v -E ’192.168|127.0′|awk ‘{if($2!=null&a
java程序员生存手册-craps 游戏-一个简单的游戏
bylijinnan
java
import java.util.Random;
public class CrapsGame {
/**
*
*一个简单的赌*博游戏,游戏规则如下:
*玩家掷两个骰子,点数为1到6,如果第一次点数和为7或11,则玩家胜,
*如果点数和为2、3或12,则玩家输,
*如果和为其它点数,则记录第一次的点数和,然后继续掷骰,直至点数和等于第一次掷出的点
TOMCAT启动提示NB: JAVA_HOME should point to a JDK not a JRE解决
开窍的石头
JAVA_HOME
当tomcat是解压的时候,用eclipse启动正常,点击startup.bat的时候启动报错;
报错如下:
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME shou
[操作系统内核]操作系统与互联网
comsci
操作系统
我首先申明:我这里所说的问题并不是针对哪个厂商的,仅仅是描述我对操作系统技术的一些看法
操作系统是一种与硬件层关系非常密切的系统软件,按理说,这种系统软件应该是由设计CPU和硬件板卡的厂商开发的,和软件公司没有直接的关系,也就是说,操作系统应该由做硬件的厂商来设计和开发
富文本框ckeditor_4.4.7 文本框的简单使用 支持IE11
cuityang
富文本框
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>知识库内容编辑</tit
Property null not found
darrenzhu
datagrid Flex Advanced propery null
When you got error message like "Property null not found ***", try to fix it by the following way:
1)if you are using AdvancedDatagrid, make sure you only update the data in the data prov
MySQl数据库字符串替换函数使用
dcj3sjt126com
mysql 函数 替换
需求:需要将数据表中一个字段的值里面的所有的 . 替换成 _
原来的数据是 site.title site.keywords ....
替换后要为 site_title site_keywords
使用的SQL语句如下:
updat
mac上终端起动MySQL的方法
dcj3sjt126com
mysql mac
首先去官网下载: http://www.mysql.com/downloads/
我下载了5.6.11的dmg然后安装,安装完成之后..如果要用终端去玩SQL.那么一开始要输入很长的:/usr/local/mysql/bin/mysql
这不方便啊,好想像windows下的cmd里面一样输入mysql -uroot -p1这样...上网查了下..可以实现滴.
打开终端,输入:
1
Gson使用一(Gson)
eksliang
json gson
转载请出自出处:http://eksliang.iteye.com/blog/2175401 一.概述
从结构上看Json,所有的数据(data)最终都可以分解成三种类型:
第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"ickes"这个字符串。
第二种类型是序列(sequence),又叫做数组(array)
android点滴4
gundumw100
android
Android 47个小知识
http://www.open-open.com/lib/view/open1422676091314.html
Android实用代码七段(一)
http://www.cnblogs.com/over140/archive/2012/09/26/2611999.html
http://www.cnblogs.com/over140/arch
JavaWeb之JSP基本语法
ihuning
javaweb
目录
JSP模版元素
JSP表达式
JSP脚本片断
EL表达式
JSP注释
特殊字符序列的转义处理
如何查找JSP页面中的错误
JSP模版元素
JSP页面中的静态HTML内容称之为JSP模版元素,在静态的HTML内容之中可以嵌套JSP
App Extension编程指南(iOS8/OS X v10.10)中文版
啸笑天
ext
当iOS 8.0和OS X v10.10发布后,一个全新的概念出现在我们眼前,那就是应用扩展。顾名思义,应用扩展允许开发者扩展应用的自定义功能和内容,能够让用户在使用其他app时使用该项功能。你可以开发一个应用扩展来执行某些特定的任务,用户使用该扩展后就可以在多个上下文环境中执行该任务。比如说,你提供了一个能让用户把内容分
SQLServer实现无限级树结构
macroli
oracle sql SQL Server
表结构如下:
数据库id path titlesort 排序 1 0 首页 0 2 0,1 新闻 1 3 0,2 JAVA 2 4 0,3 JSP 3 5 0,2,3 业界动态 2 6 0,2,3 国内新闻 1
创建一个存储过程来实现,如果要在页面上使用可以设置一个返回变量将至传过去
create procedure test
as
begin
decla
Css居中div,Css居中img,Css居中文本,Css垂直居中div
qiaolevip
众观千象 学习永无止境 每天进步一点点 css
/**********Css居中Div**********/
div.center {
width: 100px;
margin: 0 auto;
}
/**********Css居中img**********/
img.center {
display: block;
margin-left: auto;
margin-right: auto;
}
Oracle 常用操作(实用)
吃猫的鱼
oracle
SQL>select text from all_source where owner=user and name=upper('&plsql_name');
SQL>select * from user_ind_columns where index_name=upper('&index_name'); 将表记录恢复到指定时间段以前
iOS中使用RSA对数据进行加密解密
witcheryne
ios rsa iPhone objective c
RSA算法是一种非对称加密算法,常被用于加密数据传输.如果配合上数字摘要算法, 也可以用于文件签名.
本文将讨论如何在iOS中使用RSA传输加密数据. 本文环境
mac os
openssl-1.0.1j, openssl需要使用1.x版本, 推荐使用[homebrew](http://brew.sh/)安装.
Java 8
RSA基本原理
RS