Public Sub ListAllFiles() Dim cmd As String Dim dir As String Dim lines As Variant Dim line As Variant Dim cel As Range Dim ret As String dir = Cells(1, 1).Value cmd = "dir /b /s " & dir ret = runCmd(cmd) lines = Split(ret, vbCrLf) Set cel = Cells(2, 2) For Each line In lines If InStr(line, ".svn") > 0 Then GoTo next_row cel.Value = line Set cel = cel.Offset(1, 0) next_row: Next End Sub Public Function runCmd(strCmd As String) As String Dim fso As New FileSystemObject Dim tempFile As String Dim wsh As New WshShell Dim waitOnReturn As Boolean Dim windowStyle As Integer Dim oFile As Variant tempFile = fso.GetSpecialFolder(TemporaryFolder) & "\" & Replace(fso.GetTempName(), ".tmp", ".txt") strCmd = "cmd /c " & strCmd & " > " & tempFile & " 2>&1" waitOnReturn = True windowStyle = 0 wsh.Run strCmd, windowStyle, waitOnReturn On Error Resume Next 'runCmd = fso.OpenTextFile(tempFile, ForReading, False).ReadAll Set oFile = fso.GetFile(tempFile) 'If IsNull(oFile) Then MsgBox ("File not found: " & strPath): Exit Function If IsNull(oFile) Then runCmd = "File not found: " & tempFile Exit Function End If With oFile.OpenAsTextStream() runCmd = .Read(oFile.Size) .Close End With End Function |
投稿 >