【VBS】实用链接指南
注意:仅限Windows系统!
Hello World!
桌面新建个txt文本,打开写上如下内容:
msgbox "Hello World!"
保存,文件后缀再改为“vbs”即可执行,
(如果没有显示后缀名,自行百度解决)
双击运行,
完美的Windows系统上的迷你小窗口!
内容就是:
Hello World!
简单的要命,有木有,哈哈哈!
序
1、目的
Windows系统上用最简单的方法直接创建窗口程序,
需要有常见编程语言的语法基础。
我之前没有学过vbs,
但本身是软件工程专业科班生,
具有一定的其他多种语言的编程基础。
先有实践的问题,再想解决问题,而出现的此文章,
并不是凭空捏造的问题与文章及程序。2、需求分析
一个盘里的文件名字开头全有10以内数字编号开头,
要求弹出窗口输入一串数字编号,
便可以打开指定文件夹。
(程序是小事,
实际上如何给每个人电脑上所有文件夹合适的分类
才是根本问题!)3、举例
弹出交互窗口输入“122”,点击确认,
即可打开文件夹地址为:
“E:\工作\1、人事\2、培训\2、实习期”。
其中,后面的顿号和汉字是任意的,
只关注文件名前面的数字即可。4、思路
以需求的解决逻辑和一步步遇见的问题为思路,
去逐步百度搜索。
以下提供的所有的链接,
都是只要解决问题就可以,
几乎都不用全部浏览。有编程基础的会上手的很快。
一、上手编程语言初步
(一)Visual Basic快速入门
https://blog.csdn.net/achenyuan/article/details/83987056
如果有其他编程语言基础,这个不用看,当做语法工具书查阅即可。
(二)简洁的代码编辑器推荐
Sublime Text 3
我一开始用的Notepad++,
可惜玩了半天突然不支持VB的语法高亮了???
又问度娘搜到了这个,非常棒!
1. Sublime Text 下载
地址:https://www.sublimetext.com/
2. VB代码语法高亮设置
(后来我又找不到VB了,用ASP也行)
3. 中文乱码或报错解决
sublime text 3支持GBK编码
https://www.cnblogs.com/wxdblog/p/7992854.html
二、创建最简单的窗口
(一)教你用怎么vbs写一个简易的对话框
https://jingyan.baidu.com/article/22fe7cedd478133002617f23.html
注意: 中文可能报错或乱码,粗暴解决,用英文即可。
(二)vbs输入框和消息框
https://jingyan.baidu.com/article/9f63fb91492403c8410f0e4b.html
(三)VBS中InputBox函数的返回值使用技巧
https://www.jb51.net/article/26809.htm
三、常见问题与操作
(一)VBS脚本一行代码太长,使用换行符
http://www.51testing.com/html/85/87885-17546.html
(二)vbs执行显示中文乱码怎么办
https://jingyan.baidu.com/article/95c9d20d81c67dad4f756111.html
四、APIs
(一)大佬的博客
1. 测试开发技术—VBS随笔
https://www.cnblogs.com/jinjiangongzuoshi/category/491750.html
其中的:VBS基础篇 - 对象(1) - Class对象
用来学习面向对象形式的写法还挺不错的!!!
(二)字符串操作
1. VBS中常见字符串操作函数
https://www.jb51.net/article/159913.htm
2. vbs vbscript 中的回车换行符号 等特殊字符
https://www.dazhuanlan.com/2020/06/02/5ed645c962d9a/
(三)数组
动态数组:https://www.jb51.net/article/141114.htm
(四)文件文件夹操作
1. VBS对文件文件夹操作的例子
http://www.360doc.com/content/14/0606/15/219800_384287850.shtml
(五)vbs如何获取当前时间日期
http://www.jquerycn.cn/a_9237
五、产品其他完善度相关
将自己的vbs文件放到磁盘中合适的文件中,
然后右击发送到桌面快捷方式。
然后桌面就有快捷方式了,
它的图标是可以随意改变的,
可用其他图片,或自行设计图片。
详细步骤参考如下:
(一)“正规软件外形”
1、怎么修改桌面快捷方式图标
2、怎样把一般的图片变成图标格式
推荐这个:转转大师,在线的,链接如下:
http://pdftoword.55.la/img2icon/
后记:小项目现状
v1.0 纯粹面向过程编程源码
'
' 候帅洲
'
' 手机和微信:175 3102 3301
'
' 此小项目CSDN详解博客地址:https://blog.csdn.net/weixin_44591035/article/details/113667614
'
'
'
' 1、需求分析
' 一个盘里的文件名字开头全有10以内数字编号开头,
' 要求弹出窗口输入一串数字编号,便可以打开指定文件夹。
'
' 2、举例
' 弹出交互窗口输入“122”,点击确认,
' 即可打开文件夹地址为:
' “E:\工作\1、人事\2、培训\2、实习期”。
' 其中,后面的顿号和汉字是任意的,
' 只关注文件名前面的数字即可。
'
' 3、目前进度
' 以硬编码实现了第一个实用版本(v1.0:纯粹面向过程编码)
' 已经可以投入现实使用了,一位美女同事已经用上了
' 以后逐渐慢慢迭代版本吧
' 一、初始化与主窗口创建
' (一)定义变量与初始化
' 1. 定义和初始化目录结构
' (1)先硬编码根目录
dim strRootDir
strRootDir = "E:\工作\"
' (2)先硬编码所有分目录
dim idDirArr
idDirArr = Array( _
"1", "1、人事", _
"2", "2、顾问", _
"3", "3、个人", _
"4", "4、待整理", _
_
"11", "1、招聘", _
"12", "2、培训", _
"13", "3、制度", _
"14", "4、活动", _
_
"111", "1、专业知识", _
"112", "2、招聘简章", _
"113", "3、简历", _
"114", "4、统计", _
"115", "5、素材", _
"116", "6、其他资料", _
_
"120", "0、按类型分类汇总", _
"121", "1、七天入职新员工培训", _
"122", "2、实习期", _
"123", "3、其他机构" _
)
' 2. 定义和初始化各类窗口标题
dim mainWinTitle, tipsWinTitle
' (1)主窗口标题
mainWinTitle = "博瑞智(邯郸)家庭教育服务中心-孙文"
' (2)提示窗口标题
tipsWinTitle = "来自候帅洲的温馨提示"
' 3. 定义和初始化各种健壮性处理提示用语
dim strTipsTemp0, strTipsTemp1, strTipsTemp2, strTipsTemp3
' (1)提示位置:一、(二)
strTipsTemp0 = vbCrLf + "世界上最漂亮的孙文!" + vbCrLf _
+ vbCrLf + "请输入要打开的文件夹编号吧!"
' (2)提示位置:二、(二)
strTipsTemp1 = "您没有输入任何编号哦!!!"
' (3)提示位置:二、(三)
strTipsTemp2 = "您的输入不是纯数字哦!!!"
' (4)提示位置:三、(二)
strTipsTemp3 = "您的输入的编号没有对应的文件夹哦!!!"
' (二)创建交互输入框
dim id
id = inputbox(strTipsTemp0,mainWinTitle)
' 二、健壮性处理
' (一)如果inputbox返回值为Empty,即用户点击的是“取消”;
If IsEmpty(id) Then
WScript.Quit
End If
' (二)输入框内容为空时直接点击“确定”;
If Len(id) = 0 Then
msgbox strTipsTemp1, vbokcancel + vbInformation, tipsWinTitle
WScript.Quit
End If
' (三)id有字符但为非纯数字时
If Not isnumeric(id) Then
msgbox strTipsTemp2, vbokcancel + vbInformation, tipsWinTitle
WScript.Quit
end if
' 三、主逻辑处理
' (id为纯数字时)
' (一)目录结构字典的定义和初始化
' 将目录结构“id-目录”放入键值对字典对象——idDirDict
dim idDirDict, i
Set idDirDict = WSH.CreateObject("Scripting.Dictionary")
For i = 0 to UBound(idDirArr)
idDirDict.Add idDirArr(i), idDirArr(i + 1)
i = i + 1
Next
' (二)健壮性处理
' 判断指定的key是否存在
If Not idDirDict.Exists(id) Then
msgbox strTipsTemp3, vbokcancel + vbInformation, tipsWinTitle
WScript.Quit
End If
' (三)最终处理
' 1. 确定目录存在后,拼接绝对目录
dim strFinalDir
For i = 0 to Len(id) - 1
strFinalDir = strFinalDir + "\" + idDirDict.Item(left(id, i + 1))
Next
' 2. 打开目标文件夹,结束
Dim ObjWS
Set ObjWS = WScript.CreateObject("wscript.shell")
ObjWS.run strRootDir + strFinalDir
v2.0 纯粹面向过程编码,良好函数抽象封装
1、架构图
2、源码
'
' 候帅洲
'
' 手机和微信:175 3102 3301
'
' 此小项目CSDN详解博客地址:https://blog.csdn.net/weixin_44591035/article/details/113667614
'
'
' 1、需求分析
' 一个盘里的文件名字开头全有10以内数字编号开头,
' 要求弹出窗口输入一串数字编号,便可以打开指定文件夹。
'
' 2、举例
' 弹出交互窗口输入“122”,点击确认,
' 即可打开文件夹地址为:
' “E:\工作\1、人事\2、培训\2、实习期”。
' 其中,后面的顿号和汉字是任意的,
' 只关注文件名前面的数字即可。
'
' 3、目前进度
' 以硬编码实现的第二个版本,v2
' 还是纯粹面向过程编码,但都已良好封装函数,
' 函数抽象合适,函数之间有良好简洁且固定的层次关系
' 以后逐渐慢慢迭代版本吧
'
' ' 程序入口
' ' 马克思写法,逻辑在物质中辩证存在,唯物主义辩证法
' Call MainWin()
' ' 一、主窗口
' ' 主窗口总函数
' Sub MainWin()
' dim id, mainWinTitle, mainWinTips
' Call Init_MainWin(mainWinTitle, mainWinTips)
' ' 创建交互输入框
' id = inputbox(mainWinTips, mainWinTitle)
' Call Robust_MainWin(id)
' Call MainLogic(id)
' End Sub
' 程序入口
' 黑格尔写法,一切都在宇宙的逻辑之中,唯心主义
Call MainLogic(MainWin())
' 一、主窗口
' 主窗口总函数
Function MainWin()
dim id, mainWinTitle, mainWinTips
Call Init_MainWin(mainWinTitle, mainWinTips)
' 创建交互输入框
id = inputbox(mainWinTips, mainWinTitle)
Call Robust_MainWin(id)
MainWin = id
End Function
' (一)初始化主窗口提示内容
Sub Init_MainWin(mainWinTitle, mainWinTips)
dim enterpriseName ,userName, userAdj, menAdj, womenAdj
enterpriseName = "博瑞智(邯郸)家庭教育服务中心"
userName = "孙文"
menAdj = "世界上最帅的"
womenAdj = "世界上最漂亮的"
userAdj = womenAdj
' 主窗口标题
mainWinTitle = enterpriseName & "-" & userName
' 提示用语
mainWinTips = vbCrLf & userAdj & userName & vbCrLf _
+ vbCrLf + "请输入要打开的文件夹编号吧!"
End Sub
' (二)主窗口健壮性处理
Sub Robust_MainWin(id)
dim tipsWinTitle, tipsWinTips1, tipsWinTips2
Call Init_Robust_MainWin(tipsWinTitle, tipsWinTips1, tipsWinTips2)
' 1. 如果inputbox返回值为Empty,即用户点击的是“取消”;
If IsEmpty(id) Then
WScript.Quit
End If
' 2. 输入框内容为空时直接点击“确定”;
If Len(id) = 0 Then
msgbox tipsWinTips1, vbokcancel + vbInformation, tipsWinTitle
WScript.Quit
End If
' 3. id有字符但为非纯数字时
If Not isnumeric(id) Then
msgbox tipsWinTips2, vbokcancel + vbInformation, tipsWinTitle
WScript.Quit
end if
End Sub
' (三)初始化主窗口健壮性处理提示窗口内容
Sub Init_Robust_MainWin(tipsWinTitle, tipsWinTips1, tipsWinTips2)
' 1. 初始化主窗口健壮性处理提示窗口标题
tipsWinTitle = "来自候帅洲的温馨提示"
' 2. 初始化主窗口健壮性处理提示用语
' (1)提示位置:一、(三)2.
tipsWinTips1 = "您没有输入任何编号哦!!!"
' (2)提示位置:一、(三)3.
tipsWinTips2 = "您的输入不是纯数字哦!!!"
End Sub
' 二、主逻辑
' 主逻辑总函数
Sub MainLogic(id)
dim strRootDir, idDirDict
Call Init_MainLogic(strRootDir, idDirDict)
Call Robust_MainLogic(id, idDirDict)
' 1. 确定目录存在后,拼接绝对目录
' (这里的确定的前提是,硬编码的目录结构映射是真实的。)
dim strFinalDir, i
For i = 0 to Len(id) - 1
strFinalDir = strFinalDir + "\" + idDirDict.Item(left(id, i + 1))
Next
' 2. 打开目标文件夹,结束
Dim ObjWS
Set ObjWS = WScript.CreateObject("wscript.shell")
ObjWS.run strRootDir + strFinalDir
End Sub
' (一)初始化主逻辑内容
Sub Init_MainLogic(strRootDir, idDirDict)
' 1、硬编码目录结构
' (1)先硬编码根目录
strRootDir = "E:\ID之道\工作"
' (2)先硬编码所有分目录
dim idDirArr
idDirArr = Array( _
"1", "1、人事", _
"2", "2、顾问", _
"3", "3、个人", _
"4", "4、待整理", _
_
"11", "1、招聘", _
"12", "2、培训", _
"13", "3、制度", _
"14", "4、活动", _
_
"111", "1、专业知识", _
"112"