vbs读取文件内的信息将对应数据拷贝到其他路径

简介:

公司的人数众多,使用的是domino8.5+Exchange邮箱系统。

我们知道microsoft已经推出windows azure服务,所谓的公有云,我们已经在前面的几篇文档内介绍了,具体信息我就不多介绍了;自从公司购买了windows azure服务后,领导建议开始优化邮件服务的架构,将本地的服务器开始迁移windows azure运行,从IBM的官网得知,一台domino服务器最大承载用户2000-2500人,可我们在真实使用中,跟预想的不一样,只能跑1000-1200个用户,服务器能运行多少用户直接跟服务器的性能有直接关系,我们本地的所有domino服务器都运行在虚拟机上,给的最大内存是4G,CPU一颗等,所以运行1000-1200人我觉得是算是正常了。言归正传,既然是优化,那怎么做呢?那就是在windows azure上创建虚拟机,然后安装domino,启用新的邮件服务器,然后将本地的邮箱用户迁移到windows azure上的邮件服务器上,就这么简单,但是问题是,之前在本地对部分用户做过邮件迁移,比如从mail01迁移到mail02上,这样就会在mail01和mail02上都有对应的邮箱数据库,可实际用户只需要在mail02上有对应的数据库就行了,可mail01上换有用户的数据库文件,这样用户越来越多就会浪费磁盘空间,及迁移时间。所以需要怎么做呢?我们先将迁移的服务器domino导出信息,然后通过vbs拷贝数据,这样就不会有问题,

首先是定义一个xlsx文件(1.xlss),文件可以任意命名,但是需要跟脚本内的文件对应。然后定义拷贝源(d:\data),然后定一些扩展名为.nsf的文件,然后在对应的创建一个目标源(e:\data)。具体见下:

1.如果我们仅需要导出指定服务器上的目录信息,通过notes控制台打开names.nsf数据------Messaging--------Mail Users,可以通过鼠标选定后,右击导出

clip_image002

2.定义脚本内容:

1>.对比文件------脚本读取的对比文件,以文件内容为准进行拷贝。

2>.源文件-----通过脚本内的文件跟源文件对比,将相同的数据进行拷贝。

3>.目标文件-----对比后,将相同的文件拷贝后存放的路径

clip_image004

脚本内容。

clip_image006

脚本内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
currentFolder=CreateObject( "wscript.shell" ).currentDirectory&"\"
filename1=currentFolder& "1.xlsx"
sourceFolderPath= "d:\data"    ''''.nsf存放目录
desFolderPath="e:\data\"       ''''拷贝的目标目录 
Set  dic=CreateObject( "scripting.dictionary" )
Set  fso=CreateObject( "scripting.filesystemobject" )
Set  sourceFolder = fso.GetFolder(sourceFolderPath)
Set  desFolder=fso.GetFolder(desFolderPath)
Set  excelObject=CreateObject( "Excel.Application" )
Set  workbook1=excelObject.Workbooks.Open(filename1)
Set  workbook1_sheet=workbook1.Sheets( "Sheet1" )
workbook1_rowcount=workbook1_sheet.usedrange.rows.count
For  i=0  To  workbook1_rowcount
      content=Trim(workbook1_sheet.range( "A1" ).offset(i,0).value)
  If  Not  dic.Exists(content)  Then
     dic.Add content,content
  End  If
Next
For  Each  file  In  sourceFolder.Files
fileNameStr=file.Name
fileNameArray=Split(fileNameStr, "." ,-1)
fileName=fileNameArray(0)
If (dic.Exists(fileName))  Then
fso.CopyFile file.Path,desFolderPath,true
End  If 
Next 
workbook1.Close
Set  workbook1= Nothing
Set  excelObject= Nothing
Set  dic=nothing
MsgBox  "执行成功"
Function  RegExpTest(pattern,str)
  Set  reg =  New  RegExp
  reg.Pattern=pattern
  reg.Global= True
  reg.IgnoreCase= True
  RegExpTest=reg.Test 
End  Function

3.定义好脚本后,我们新建需要的对比文件,1.xlsx(sheet1)

clip_image008

4.设置源路径及内容

clip_image010

5.设置路标路径

clip_image012

6.然后将对比文件(1.xlsx)文件和定义好的脚本文件存放在一个目录下。

clip_image014

7.开始运行:双击运行即可。

clip_image016

8.看看结果:

clip_image018



本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1535183,如需转载请自行联系原作者

相关文章
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
详解:Poe AI国内版_国内使用Poe AI的最优选择!
Poe 的出现标志着 Quora 对 AI 和自然语言处理 (NLP) 技术的深入探索,预示着 AI 在我们日常生活中将扮演越来越重要的角色。
430 13
|
11月前
|
存储 应用服务中间件 Shell
PbootCMS上传文件大小限制
PbootCMS上传文件大小限制
|
弹性计算 人工智能 安全
|
存储 SQL Prometheus
【TiDB原理与实战详解】1、原理与基础优化~学不会? 不存在的!
TiDB 是一款开源的分布式关系型数据库,具备水平扩展、高可用性和强一致性等特点,适用于高并发、低延迟的大规模数据处理场景。其架构设计灵感源自 Google 的 Spanner 和 F1,并兼容 MySQL。TiDB 集群由 TiDB Server(无状态 SQL 层)、PD(元数据管理模块)和 TiKV Server(分布式存储层)组成,还包含 TiFlash(列存储引擎)以加速分析型查询。TiDB 支持分布式事务和多种事务模式,适用于 OLTP 和 HTAP 场景,如电商平台和金融系统。此外,TiDB 的部署要求包括高性能硬件配置和特定网络设置,以确保系统的稳定性和高效运行。
|
弹性计算 运维 算法
ECS稳定性体系建设与最佳实践|开发者分享会
今天分享的内容来自阿里云弹性计算技术专家杜文彬的“ECS稳定性体系建设与最佳实践”。全文围绕阿里云ECS稳定性体系建设、云上应用稳定性最佳实践这2个主题内容进行讲解。
|
机器学习/深度学习 人工智能 Java
20款超级好用的idea插件,开发效率翻倍!!!
20款超级好用的idea插件,开发效率翻倍!!!
808 1
|
Rust 数据可视化 安全
【番外篇】Rust环境搭建+基础开发入门+Rust与.NET6、C++的基础运算性能比较
突然想打算把Rust作为将来自己主要的副编程语言。当然,主语言还是C#,毕竟.NET平台这么强大,写起来就是爽。缘起:之前打算一些新的产品或者新的要开发的东西,由于没有历史包袱,就想重新选型一下,在.NET平台(C#语言)、Golang、Rust里面进行选择一个。
447 0
【番外篇】Rust环境搭建+基础开发入门+Rust与.NET6、C++的基础运算性能比较
|
关系型数据库 MySQL
Mysql5中Packet for query is too large (3396053 > 1048576),数据量太大解决方案
Mysql5中Packet for query is too large (3396053 > 1048576),数据量太大解决方案
141 0
|
存储 人工智能 安全
OpenAI遭起诉:训练ChatGPT,涉嫌窃取数百万用户信息
OpenAI遭起诉:训练ChatGPT,涉嫌窃取数百万用户信息
241 0
|
SQL 存储 缓存
Mybatis知识点全总结(三)
Mybatis知识点全总结
281 0
Mybatis知识点全总结(三)