个人感觉要写一个命令的话,它应该有必要的提示信息,合适的返回值,然后就是在内部自己尽量避免由于不规范或者预期之外的参数传入造成的影响。你要写CMD命令的话还是可以边试参考系统的,有些功能估计用VBS还可以扩充一些额外的参数,但是有些可能就难以实现了。做起来是个很大的工程啊,自己有兴趣就好。
我刚刚也写了一个attrib,也没有/s参数,但是加入了一些提示:- Function Attrib(strPath, strArgs)
- Dim strAttr, strOp, strArgsU
- strAttr = "RHSVDALC"
- strOp = "-+"
- strArgsU = UCase(strArgs)
- Dim fso, df, valAttrib
- Set fso = CreateObject("Scripting.FileSystemObject")
- If fso.FileExists(strPath) Then
- Set df = fso.GetFile(strPath)
- ElseIf fso.FolderExists(strPath) Then
- Set df = fso.getFolder(strPath)
- Else
- Err.Description = "File not found - " & aa
- Err.Raise 3265
- Exit Function
- End If
- valAttrib = df.attributes
- If Not strArgsU = "" Then
- Dim pa, po, i, j, s
- For pa = 1 To 8
- i = pa - 1
- For po = 1 To 2
- j = po - 1
- s = Mid(strOp, po, 1) & Mid(strAttr, pa, 1)
- If Instr(strArgsU, s) > 0 Then
- If j = 0 Then
- valAttrib = valAttrib And (&HFF - 2 ^ i)
- ElseIf j = 1 Then
- valAttrib = valAttrib Or (2 ^ i)
- End If
- End If
- Next
- Next
- df.attributes = valAttrib
- End If
- For i = 0 To 7
- If df.attributes And (2 ^ i) Then
- Attrib = Attrib & Mid(strAttr, i + 1, 1)
- Else
- Attrib = Attrib & "-"
- End If
- Next
- Attrib = Attrib & vbTab & df.Path
- End Function
复制代码
|