使用VBS實現批量修改

由於權限的原因,部分客戶需要在SharePoint站點上將狀態Reject,由於生產環境沒有數據庫權限,所以只能寫個VBS來跑,代碼如下:

 

   1       OptionExplicit'強制聲明

  2     
  3     ' --------------------------------------------------------------------
  4     '  Define
  5     ' --------------------------------------------------------------------
  6     Const DELAY_TIME = 200
  7     Dim emailAddress, customerID
  8     emailAddress = "[email protected]"
  9     customerID = "N/A"
 10     Call Main() '調用主函數
 11 
 12     Private Sub Main()
 13         Dim oIE  'As InternetExplorer.Application
 14         Set oIE=CreateObject("InternetExplorer.Application")
 15         oIE.Visible=True
 16 
 17         Dim objWshShell '讀取桌面文件夾
 18         Set objWshShell = WScript.CreateObject("WScript.Shell")
 19 
 20         
 21     ' read command line arguments
 22         If WScript.Arguments.Count > 0 Then
 23           emailAddress = WScript.Arguments.Item(0)
 24         End If
 25 
 26     '打開一個新的IE窗口
 27     call NavigateWait(oIE,"about:blank")
 28     objWshShell.AppActivate "about:blank"
 29     WScript.Sleep(500)
 30     call NavigateWait(oIE,"http://網址")
 31     '輸入Email地址並按下查詢按鈕
 32     Dim oForm,dropdown1,inputbox1,button1
 33     '獲取表單
 34     Set oForm=oIE.document.forms("aspnetForm")
 35     '獲取郵件下拉列表條件
 36     set dropdown1=oIE.document.getElementsByName("ctl00$m$g_36d820b1_1932_42e6_b8a5_32d21fea0dab$ctl12")
 37     '獲取郵件文本框
 38     Set inputbox1=oIE.document.getElementsByName("ctl00$m$g_36d820b1_1932_42e6_b8a5_32d21fea0dab$ctl13")
 39     '獲取查詢按鈕
 40     Set button1 = oIE.document.getElementsByName("ctl00$m$g_36d820b1_1932_42e6_b8a5_32d21fea0dab$ctl74"
 41     On Error Resume Next
 42     dropdown1(0).selectedIndex=2 'email equals
 43     if Err.Number>0 then
 44      Call oIE.Quit()
 45      Set oIE = Nothing
 46     end If
 47     inputbox1(0).value=emailAddress
 48     button1(0).Click
 49     WaitForNavigateComplete(oIE)
 50 
 51     '到第二個頁面
 52     Set oForm = oIE.document.forms("aspnetForm")
 53         Set button1 = oIE.document.getElementsByName("ctl00$m$g_4fdccc80_8665_4043_8b2d_264d342d4967$ctl01$ctl03$ctl00")
 54     button1(0).Click
 55         WaitForNavigateComplete(oIE)
 56 
 57 
 58     
 59     '到第三個頁面
 60     Dim dropdown2,dropdown3
 61     Set oForm = oIE.document.forms("aspnetForm")
 62     Set dropdown1 = oIE.document.getElementsByName("ctl00$m$g_9ff5ad08_cc4d_49ba_87be_8d05c894b88e$dropdownValidationStatus"
 63     Set dropdown2 = oIE.document.getElementsByName("ctl00$m$g_9ff5ad08_cc4d_49ba_87be_8d05c894b88e$dropdownSegment")
 64     Set dropdown3 = oIE.document.getElementsByName("ctl00$m$g_9ff5ad08_cc4d_49ba_87be_8d05c894b88e$dropdownStatus")
 65     
 66     Dim school,postal
 67     Set school=oIE.document.getElementsByName("ctl00$m$g_9ff5ad08_cc4d_49ba_87be_8d05c894b88e$txtSchool")
 68     Set postal=oIE.document.getElementsByName("ctl00$m$g_9ff5ad08_cc4d_49ba_87be_8d05c894b88e$ctl19")
 69     Set button1 = oIE.document.getElementsByName("ctl00$m$g_9ff5ad08_cc4d_49ba_87be_8d05c894b88e$ctl96"
 70     if(school(0).value=null Or Len(school(0).value)<=0Then
 71          school(0).value="NA"
 72     end If
 73     if(postal(0).value=null Or len(postal(0).value)<=0Then
 74          postal(0).value="NA"
 75     end If
 76 
 77     dropdown1(0).selectedIndex = 3
 78     dropdown2(0).selectedIndex=1
 79     dropdown3(0).selectedIndex=6
 80     WScript.Sleep(5000)
 81 
 82     button1(0).Click
 83         WaitForNavigateComplete(oIE)
 84         
 85         Call oIE.Quit()
 86         Set oIE = Nothing
 87 
 88     
 89     
 90     End Sub
 91 
 92     ' --------------------------------------------------------------------
 93     '  NavigateWait(InternetExplorer.Application, String)
 94     ' --------------------------------------------------------------------
 95     Private Sub NavigateWait(oIE, stUrl)
 96         Call oIE.Navigate(stUrl)
 97         Call WaitForNavigateComplete(oIE)
 98     End Sub
 99 
100     ' --------------------------------------------------------------------
101     '  WaitForNavigateComplete(InternetExplorer.Application)
102     ' --------------------------------------------------------------------
103     Private Sub WaitForNavigateComplete(oIE)
104         Do While (oIE.busy)
105             Call WScript.Sleep(DELAY_TIME)
106         Loop
107 
108         Do While (oIE.document.readyState <> "complete")
109             Call WScript.Sleep(DELAY_TIME)
110         Loop
111     End Sub

 

 這樣站點上的用戶狀態修改就可以無人值守的跑起來了

首先代碼會打開網站,

 

並輸入郵件地址,自動點擊查詢,到下一個頁面

 

自動點擊編輯,到下一個頁面

 

自動修改狀態爲reject並點擊保存按鈕,整個IE退出。

 

能幫手工編輯的童鞋省很多事情啊 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章