我的结果是通过日志输出到CSV文件生成的。
是否有使用公式或简单VBA的方法我可以拆分结果,因此Path的信息是A列,B列中的Access in的对应值是什么?
路径:Microsoft.PowerShell.Core \ FileSystem :: C:\ Users \ vma \ Desktop \ VMADMIN \ csv 访问:{System.Security.AccessControl.FileSystemAccessRule,System.Security.AccessControl.FileSystemAccessRule,System.Security.AccessControl.FileSystemAccessRule}
路径:Microsoft.PowerShell.Core \ FileSystem :: C:\ Users \ vma \ Desktop \ VMADMIN \ Test 访问:{System.Security.AccessControl.FileSystemAccessRule,System.Security.AccessControl.FileSystemAccessRule,System.Security.AccessControl.FileSystemAccessRule}
路径:Microsoft.PowerShell.Core \ FileSystem :: C:\ Users \ vma \ Desktop \ VMADMIN \ test1 访问:{System.Security.AccessControl.FileSystemAccessRule,System.Security.AccessControl.FileSystemAccessRule,System.Security.AccessControl.FileSystemAccessRule}
路径:Microsoft.PowerShell.Core \ FileSystem :: C:\ Users \ vma \ Desktop \ VMADMIN \ test2 访问:{}
路径:Microsoft.PowerShell.Core \ FileSystem :: C:\ Users \ vma \ Desktop \ VMADMIN \ Test3 访问:{System.Security.AccessControl.FileSystemAccessRule,System.Security.AccessControl.FileSystemAccessRule,System.Security.AccessControl.FileSystemAccessRule}
答案 0 :(得分:0)
这非常非常粗糙,根本不是防弹的,但也许它是你正在寻找的样板?
Sub PathAccessSplit()
Dim wsFrom, wsTo As Worksheet
Dim rowFrom, rowTo, lastRow As Integer
Dim cellVal As String
Set wsFrom = Sheets("Sheet1")
Set wsTo = Sheets("Sheet2")
lastRow = wsFrom.Cells(wsFrom.Rows.Count, "A").End(xlUp).Row
rowTo = 1
For rowFrom = 1 To lastRow
cellVal = wsFrom.Cells(rowFrom, 1).Text
If (Left(cellVal, 4) = "Path") Then
wsTo.Cells(rowTo, 1).Value = cellVal
ElseIf (Left(cellVal, 6) = "Access") Then
wsTo.Cells(rowTo, 2).Value = cellVal
rowTo = rowTo + 1
End If
Next rowFrom
End Sub
当然,它假设您的源数据在Sheet1中,输出将重定向到Sheet2。很容易让它覆盖现有的工作表,但这取决于你想要的。