VBS脚本判断及获取两个文件之间的不同内容

简介:

由于公司目前的数据比较乱,近期做系统优化,A系统中有1000个用户,B系统有1300个用户,但是A系统中的用户是正确的,B系统中的数据不正确,也有可能是用户数据没有及时做删除,所以想通过vbs脚本进行判断及删除,所以我们需要将A系统中的用户导出来,然后以A系统的数据为准,然后同时将B系统的用户信息也导出来,通过vbs比较,将不同的数据写入到新生成的文件中做处理,具体见下:

以下是一个例子:

A系统中导出的文件:

image

B系统导出的文件:

image

执行的效果应该是在新生成的文件中,将B系统文件中的user06、user07写入到新的文件中就正常了;

因为:A系统的数据是准确的,所以通过比对后,将差异数据写入到新的数据文件中;

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
Dim Txt1,Txt2,Txt3
msgbox  "请选择源文件-01"
Txt1 = CreateObject( "WScript.Shell" ).Exec( "mshta vbscript:" "<input type=file id=f><script>f.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(f.value)[close()];</script>" "" ).StdOut.ReadAll
msgbox  "请选择源文件-02"
Txt2 = CreateObject( "WScript.Shell" ).Exec( "mshta vbscript:" "<input type=file id=f><script>f.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(f.value)[close()];</script>" "" ).StdOut.ReadAll
msgbox  "请选择保存路劲"
Txt3 = BrowseForFolder( "txt3 fold: " ) &  "\zhixing.txt"
 
 
Set dic = CreateObject( "scripting.dictionary" )
Set fso = CreateObject( "scripting.filesystemobject" )
 
Set of1 = fso.OpenTextFile(Txt1)
Do While of1.AtEndOfLine <> True
     dic.Add of1.ReadLine,1
Loop
 
 
Set of2 = fso.OpenTextFile(Txt2)
Set of3 = fso.CreateTextFile(Txt3)
Do While of2.AtEndOfLine <> True
     line = of2.ReadLine
     If Not dic.Exists(line) Then
         of3.Writeline line
     End If
Loop
 
msgbox  "ok"
 
Function BrowseForFolder(ByVal strTips)
   Dim objFolder
   Set objFolder = CreateObject( "Shell.Application" ).BrowseForFolder (&H0, strTips, &H0010 + &H0001)
   If (Not objFolder Is Nothing) Then BrowseForFolder = objFolder.Self.Path  'objFolder.Items().Item().Path
End Function

image

如果数据多的话,我们可以按照一下脚本试试

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
Dim Txt1,Txt2,Txt3
msgbox  "请选择源文件-01"
Txt1 = CreateObject( "WScript.Shell" ).Exec( "mshta vbscript:" "<input type=file id=f><script>f.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(f.value)[close()];</script>" "" ).StdOut.ReadAll
msgbox  "请选择源文件-02"
Txt2 = CreateObject( "WScript.Shell" ).Exec( "mshta vbscript:" "<input type=file id=f><script>f.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(f.value)[close()];</script>" "" ).StdOut.ReadAll
msgbox  "请选择保存路劲"
Txt3 = BrowseForFolder( "txt3 fold: " ) &  "\zhixing.txt"
Set dic = CreateObject( "scripting.dictionary" )
Set fso = CreateObject( "scripting.filesystemobject" )
Set of1 = fso.OpenTextFile(Txt1,1)
Do While Not of1.atendofstream  
line = of1.ReadLine
If Not dic.Exists(line) Then
dic.Add line,1
End  if
Loop
Set of2 = fso.OpenTextFile(Txt2,1)
Set of3 = fso.CreateTextFile(Txt3)
Do While Not of2.atendofstream  
lined = of2.ReadLine
If Not dic.Exists(lined) Then
of3.Writeline lined
End If
Loop
Function BrowseForFolder(ByVal strTips)
   Dim objFolder
   Set objFolder = CreateObject( "Shell.Application" ).BrowseForFolder (&H0, strTips, &H0010 + &H0001)
   If (Not objFolder Is Nothing) Then BrowseForFolder = objFolder.Self.Path  'objFolder.Items().Item().Path
End Function
msgbox  "ok"

开始执行,需要选择源文件-01

image

image

然后选择源文件-02

image

选择源文件-02之后,提示需要选择执行后的差异文件的路劲

image

image

执行成功

image

然后我们查看执行后的文件

image

image



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

相关文章
|
Shell
Shell 脚本输出命令结果保持原格式,保留换行
Shell 脚本输出命令结果保持原格式,保留换行
171 0
|
5月前
|
Linux Shell
Linux脚本获取输入参数判断文件还是文件路径
Linux脚本获取输入参数判断文件还是文件路径
32 4
|
Shell
【Shell篇】循环查找某个目录的脚本文件并打印运行
这段代码是/build/envsetup.sh文件最后一段代码,搜索了源代码中所有的vendorsetup.sh脚本。
260 0
|
Shell Linux Perl
shell 定义绝对路径,出错 sed: 未找到命令,脚本功能:替换某一行内容
shell 定义绝对路径,出错 sed: 未找到命令,脚本功能:替换某一行内容
shell 定义绝对路径,出错 sed: 未找到命令,脚本功能:替换某一行内容
|
Shell
SHELL脚本递归循环,文件名包含空格的处理办法
SHELL脚本递归循环,文件名包含空格的处理办法
177 0
|
Shell
SHELL判断文件是否包含某个字串
SHELL判断文件是否包含某个字串
181 0
|
Shell
SHELL下把一个文件附加到另外一个文件,注意编码问题
SHELL下把一个文件附加到另外一个文件,注意编码问题
133 0
|
SQL Shell 数据库
如何让脚本在任意地方可执行
如何让脚本在任意地方可执行
143 0
如何让脚本在任意地方可执行
|
Ubuntu Linux Shell
如何让你的脚本可以在任意地方都可执行?
如何让你的脚本可以在任意地方都可执行?
455 0
如何让你的脚本可以在任意地方都可执行?
|
JSON Java Unix
《懒人Shell脚本》之十——统计多重路径下的不同扩展名文件及个数
1、统计实现 find -type f | sed -e 's/.*\.//' | sort | uniq -c | sort -n > rst.txt 1 2、脚本分解 1) find -type f regular file , 查找正规的文件 返回:./bak_network/道x网站/bak_第8章.md
139 0