由于公司目前的資料比較亂,近期做系統優化,A系統中有1000個使用者,B系統有1300個使用者,但是A系統中的使用者是正确的,B系統中的資料不正确,也有可能是使用者資料沒有及時做删除,是以想通過vbs腳本進行判斷及删除,是以我們需要将A系統中的使用者導出來,然後以A系統的資料為準,然後同時将B系統的使用者資訊也導出來,通過vbs比較,将不同的資料寫入到新生成的檔案中做處理,具體見下:
以下是一個例子:
A系統中導出的檔案:
<a href="http://s3.51cto.com/wyfs02/M00/8F/4E/wKiom1jaV6LSF3o7AABmLYfdSc0704.png" target="_blank"></a>
B系統導出的檔案:
<a href="http://s3.51cto.com/wyfs02/M01/8F/4E/wKiom1jaV6ODDQoZAABMQUgI3-0916.png" target="_blank"></a>
執行的效果應該是在新生成的檔案中,将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
<code>Dim Txt1,Txt2,Txt3</code>
<code>msgbox </code><code>"請選擇源檔案-01"</code>
<code>Txt1 = CreateObject(</code><code>"WScript.Shell"</code><code>).Exec(</code><code>"mshta vbscript:"</code><code>"<input type=file id=f><script>f.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(f.value)[close()];</script>"</code><code>""</code><code>).StdOut.ReadAll</code>
<code>msgbox </code><code>"請選擇源檔案-02"</code>
<code>Txt2 = CreateObject(</code><code>"WScript.Shell"</code><code>).Exec(</code><code>"mshta vbscript:"</code><code>"<input type=file id=f><script>f.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(f.value)[close()];</script>"</code><code>""</code><code>).StdOut.ReadAll</code>
<code>msgbox </code><code>"請選擇儲存路勁"</code>
<code>Txt3 = BrowseForFolder(</code><code>"txt3 fold: "</code><code>) & </code><code>"\zhixing.txt"</code>
<code>Set dic = CreateObject(</code><code>"scripting.dictionary"</code><code>)</code>
<code>Set fso = CreateObject(</code><code>"scripting.filesystemobject"</code><code>)</code>
<code>Set of1 = fso.OpenTextFile(Txt1)</code>
<code>Do While of1.AtEndOfLine <> True</code>
<code> </code><code>dic.Add of1.ReadLine,1</code>
<code>Loop</code>
<code>Set of2 = fso.OpenTextFile(Txt2)</code>
<code>Set of3 = fso.CreateTextFile(Txt3)</code>
<code>Do While of2.AtEndOfLine <> True</code>
<code> </code><code>line = of2.ReadLine</code>
<code> </code><code>If Not dic.Exists(line) Then</code>
<code> </code><code>of3.Writeline line</code>
<code> </code><code>End If</code>
<code>msgbox </code><code>"ok"</code>
<code>Function BrowseForFolder(ByVal strTips)</code>
<code> </code><code>Dim objFolder</code>
<code> </code><code>Set objFolder = CreateObject(</code><code>"Shell.Application"</code><code>).BrowseForFolder (&H0, strTips, &H0010 + &H0001)</code>
<code> </code><code>If (Not objFolder Is Nothing) Then BrowseForFolder = objFolder.Self.Path 'objFolder.Items().Item().Path</code>
<code>End Function</code>
<a href="http://s3.51cto.com/wyfs02/M01/8F/4C/wKioL1jaV6bBVoSlAAHCSe2fcz4866.png" target="_blank"></a>
如果資料多的話,我們可以按照一下腳本試試
<code>Set of1 = fso.OpenTextFile(Txt1,1)</code>
<code>Do While Not of1.atendofstream </code>
<code>line = of1.ReadLine</code>
<code>If Not dic.Exists(line) Then</code>
<code>dic.Add line,1</code>
<code>End </code><code>if</code>
<code>Set of2 = fso.OpenTextFile(Txt2,1)</code>
<code>Do While Not of2.atendofstream </code>
<code>lined = of2.ReadLine</code>
<code>If Not dic.Exists(lined) Then</code>
<code>of3.Writeline lined</code>
<code>End If</code>
開始執行,需要選擇源檔案-01
<a href="http://s3.51cto.com/wyfs02/M02/8F/4C/wKioL1jaV6vS7htPAAe9CuWyuBY960.png" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M01/8F/4C/wKioL1jaV7HCh4w6AAbLU4EEFtY523.png" target="_blank"></a>
然後選擇源檔案-02
<a href="http://s3.51cto.com/wyfs02/M00/8F/4C/wKioL1jaV7bB66x1AAX9Ug5jh84645.png" target="_blank"></a>
選擇源檔案-02之後,提示需要選擇執行後的差異檔案的路勁
<a href="http://s3.51cto.com/wyfs02/M02/8F/4C/wKioL1jaV9SyYnWlAAaZIuvw7II970.png" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M02/8F/4E/wKiom1jaV9qAd-pkAAX7owpDXTs437.png" target="_blank"></a>
執行成功
<a href="http://s3.51cto.com/wyfs02/M00/8F/4C/wKioL1jaV97RP0WSAAPYPyVGdO8714.png" target="_blank"></a>
然後我們檢視執行後的檔案
<a href="http://s3.51cto.com/wyfs02/M01/8F/4E/wKiom1jaV_XRDnufAAUHGsY0eoo713.png" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M02/8F/4C/wKioL1jaWA2hDoq7AABN98dH0wI528.png" target="_blank"></a>
本文轉自 高文龍 51CTO部落格,原文連結:http://blog.51cto.com/gaowenlong/1911226,如需轉載請自行聯系原作者