2013-10-30 21 views
1

嘿,我有这段代码,我拿两个文件并阅读它们。这两个是CurrentSharesApprovedShares。我比较这两个并将差异写入.txt文件,然后运行命令删除共享,命令是Net Share ShareName /DELETE。那是whiteList部分。将命令行参数插入到vbscript中

黑名单部分是相当一样,我把以前CurrentShares和比较它UnApprovedShares。然后,我将差异写入文本文件,并使用与以前相同的命令删除共享。

我需要的是独立的我的脚本,所以当有人运行命令行脚本中的所有他们所要做的就是写ShareDelete.vbs /WhitlistShareDelete.vbs /Blacklist和具体取决于他们键入命令拨打电话或者黑名单白名单或VERSON。我的代码是

Option Explicit 

Function DeleteThisShare(Share) 
Dim objShell 
    DeleteThisShare = "net share " & Share & " /DELETE" 
    Set objShell = CreateObject("Wscript.Shell") 
    wscript.echo DeleteThisShare 
    objShell.Run DeleteThisShare 
End Function 
'------------------------------------------------------------------------------ 

'Whitelist 
Wscript.echo "Calling cleanshares.vbs /whitelist.." 

'Reads Approvedshare txt and makes the txt file into an array 
Public objFSO 
set objFSO = CreateObject("Scripting.FileSystemObject") 
Dim objApprovedFile 
Set objApprovedFile = objFSO.OpenTextFile ("C:\Users\a352592\Desktop\Abdullahi\Remove Shares Utility\approvedshares.txt") 
Public strApprovedFile, strApprovedData, arrApprovedLines, ApprovedLineCount, strApprovedShares 
CONST ForReading = 1 
strApprovedFile = ("C:\Users\a352592\Desktop\Abdullahi\Remove Shares Utility\approvedshares.txt") 
strApprovedData = objFSO.OpenTextFile(Trim(strApprovedFile),ForReading).ReadAll 
arrApprovedLines = Split(Trim(strApprovedData),vbCrLf) 
wscript.echo strApprovedData 
ApprovedLineCount = UBound(arrApprovedLines) + 1 
strApprovedShares = strApprovedData 
'wscript.echo "Approved share count : " &ApprovedLinecount 

'Reads current shares txt and also makes that txt into an array 
set objFSO = CreateObject("Scripting.FileSystemObject") 
Dim objCurrentFile 
Set objCurrentFile = objFSO.OpenTextFile ("C:\Users\a352592\Desktop\Abdullahi\Remove Shares Utility\currentshares.txt") 
Public strCurrentFile, strCurrentData, arrCurrentLines, CurrentLineCount, strCurrentShares, strNonApproved 
strCurrentFile = ("C:\Users\a352592\Desktop\Abdullahi\Remove Shares Utility\currentshares.txt") 
strCurrentData = objFSO.OpenTextFile(Trim(strCurrentFile),ForReading).ReadAll 
arrCurrentLines = Split(Trim(strCurrentData),vbCrLf) 
CurrentLineCount = UBound(arrCurrentLines) + 1 
'wscript.echo "current share count : " &CurrentLinecount 

Do until objCurrentFile.AtEndOfStream 
    strCurrentShares = objCurrentFile.ReadLine 
    If InStr(strApprovedShares, strCurrentShares) = 0 Then 
    StrNonApproved = StrNonApproved & StrCurrentShares & vbCrLf 
    End If 

Loop 
objApprovedFile.Close 
objCurrentFile.Close 

Wscript.echo "Current Shares Not approved: " & vbCrLf & strNonApproved 
Set objWhiteFile = objFSO.CreateTextFile("C:\Users\a352592\Desktop\Abdullahi\Remove Shares Utility\Shares_Not_Approved.txt") 
Dim objWhiteFile : objWhiteFile.WriteLine strNonApproved '"The following shares are not listed as an approved share in the approvedshares.txt file. Removing share from the PC: " & vbCrLf & strNonApproved 

Dim notapprovedShares, notapprovedLines, strnotapprovedFile 
strnotapprovedFile = ("C:\Users\a352592\Desktop\Abdullahi\Remove Shares Utility\Shares_Not_Approved.txt") 
notapprovedLines = objFSO.OpenTextFile(strnotapprovedFile,ForReading).ReadAll 
notapprovedLines = Split(notApprovedLines, vbCrLf) 

Dim x, k, Line 
k = uBound(notApprovedLines) 

For x = 0 To k 
    Line = Trim(notApprovedLines(x)) 
    If Len(Line) > 0 then 
     DeleteThisShare(Line) 
    End If 
Next 


'------------------------------------------------------------------------------------------------------------ 
'Blacklist 
'Wscript.echo "Calling cleanshares.vbs /Blacklist.." 

Function DeleteThisShare(Share) 
Dim objShell 
    DeleteThisShare = "net share " & Share & " /DELETE" 
    Set objShell = CreateObject("Wscript.Shell") 
    wscript.echo DeleteThisShare 
    objShell.Run DeleteThisShare 
End Function 


Set objCurrentFile = objFSO.OpenTextFile ("C:\Users\a352592\Desktop\Abdullahi\Remove Shares Utility\currentshares.txt") 

'Reads UnApprovedShares and makes txt file into an array 
Set objFso = CreateObject("Scripting.FileSystemObject") 
Dim strUnApprovedFile, strUnApprovedData, arrUnApprovedLines, UnApprovedLineCount, strUnApprovedShares, strNonUnapprovedShares 
strUnApprovedFile = ("C:\Users\a352592\Desktop\Abdullahi\Remove Shares Utility\unapprovedshares.txt") 
strUnApprovedData = objFSO.OpenTextFile(Trim(strUnApprovedFile),ForReading).ReadAll 
arrUnApprovedLines = Split(Trim(strUnApprovedData),vbCrLf) 
UnApprovedLineCount = UBound(arrUnApprovedLines) + 1 
strUnApprovedShares = strUnApprovedData 
'wscript.echo "Unapproved Share Count: " & UnApprovedLineCount 
strCurrentFile = ("C:\Users\a352592\Desktop\Abdullahi\Remove Shares Utility\currentshares.txt") 

Do until objCurrentFile.AtEndOfStream 
    StrCurrentShares = objCurrentFile.Readline 
If InStr(strUnApprovedShares, strCurrentShares) = 0 Then 
StrNonUnapprovedShares = StrNonUnapprovedShares & strCurrentShares & vbCrLf 
End If 
Loop 

Wscript.echo "Current shares Not UnApproved: " & vbcrLf & StrNonUnapprovedShares 
Dim objBlackFile : Set objBlackFile = ObjFSO.CreateTextFile("C:\Users\a352592\Desktop\Abdullahi\Remove Shares Utility\Shares_Not_Unapproved.txt") 
objBlackFile.WriteLine StrNonUnapprovedShares 

Dim notUnapprovedShares, notUnapprovedLines, strnotUnapprovedFile 
strnotUnapprovedFile = ("C:\Users\a352592\Desktop\Abdullahi\Remove Shares Utility\Shares_Not_Unapproved.txt") 
notUnapprovedLines = objFSO.OpenTextFile(strnotUnapprovedFile,ForReading).ReadAll 
notUnapprovedLines = Split(notUnapprovedLines, vbCrLf) 

Dim y, j, Line2 
j = uBound(notUnapprovedLines) 

For y = 0 to j 
    Line2 = Trim(notUnapprovedLines(y)) 
    If len(Line2) > 0 Then 
     DeleteThisShare(Line2) 
    End If 
Next 

回答

2

一种用于处理命名参数骨架:

Option Explicit 

WScript.Quit Main() 

Function Main() 
    Main = 1 

    Dim oWAN : Set oWAN = WScript.Arguments.Named 
    Select Case True 
    Case 1 <> oWAN.Count 
     WScript.Echo "Usage: cscript demoargs.vbs /Whitelist OR /Blacklist" 
    Case oWAN.Exists("Whitelist") 
     WScript.Echo "doing Whitelist stuff" 
     Main = 0 
    Case oWAN.Exists("Blacklist") 
     WScript.Echo "doing Blacklist stuff" 
     Main = 0 
    End Select 
End Function 

输出:

cscript demoarg.vbs 
Usage: cscript demoargs.vbs /Whitelist OR /Blacklist 

cscript demoarg.vbs /Whitelist 
doing Whitelist stuff 

cscript demoarg.vbs /Blacklist 
doing Blacklist stuff 

cscript demoarg.vbs /Blacklist /Whitelist 
Usage: cscript demoargs.vbs /Whitelist OR /Blacklist 

  1. Arguments
  2. Named
  3. Unnamed
+0

谢谢,这是我需要的到底是什么 –