새 이름을 가진 새 폴더로 파일을 대량 이동하려고합니다.비슷한 이름의 폴더로 파일을 대량 이동하는 방법은 무엇입니까?
C : 예를 들어, 나는 모든 파일을 이동할 \ 고양이 \
C : \ 개
사람 :
C : \ 테스트 \ 고양이-1234
C : \ \ test \ dog-2477 \
나는이 방법으로 이동하려는 약 400 개의 폴더가 있습니다.
대상 폴더는 항상 원래 폴더 이름을 포함합니다.
새 이름을 가진 새 폴더로 파일을 대량 이동하려고합니다.비슷한 이름의 폴더로 파일을 대량 이동하는 방법은 무엇입니까?
C : 예를 들어, 나는 모든 파일을 이동할 \ 고양이 \
C : \ 개
사람 :
C : \ 테스트 \ 고양이-1234
C : \ \ test \ dog-2477 \
나는이 방법으로 이동하려는 약 400 개의 폴더가 있습니다.
대상 폴더는 항상 원래 폴더 이름을 포함합니다.
예. 한 폴더에서 다른 폴더로 파일을 복사 할 수 있습니다. 당신은 SHFileOperation
API를 사용할 수 있습니다 :) 그것은 또한 당신에게 윈도우가 1 폴더에서 다른 파일을 복사 할 때 볼 애니메이션 모양을 줄 것입니다 :) 여기에 예제가 있습니다. 귀하의 실제 필요에 맞게 수정하십시오.
Option Explicit
Private Declare Function SHFileOperation _
Lib "shell32.dll" Alias "SHFileOperationA" _
(lpFileOp As SHFILEOPSTRUCT) As Long
Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type
Private Const FO_COPY = &H2
Sub Sample()
Dim FilePath1 As String, FilePath2 As String
FilePath1 = "C:\cat"
FilePath2 = "C:\test\cat-1234"
'~~> Usage ~~> CopyFolder(From,To)
'~~> Example ~~> CopyFolder("C:\Temp\1","C:\Temp\2")
If CopyFolder(FilePath1, FilePath2) Then
MsgBox "Copied"
Else
MsgBox "Not copied"
End If
End Sub
Private Function CopyFolder(ByVal sFrom As String, _
ByVal sTo As String) As Boolean
Dim SHFileOp As SHFILEOPSTRUCT
On Error GoTo Whoa
CopyFolder = False
With SHFileOp
.wFunc = FO_COPY
.pFrom = sFrom
.pTo = sTo
End With
SHFileOperation SHFileOp
CopyFolder = True
Exit Function
Whoa:
MsgBox "Following error occurd while copying folder " & sFrom & vbCrLf & _
Err.Description, vbExclamation, "Error message"
End Function
감사합니다 Siddharth, 이것은 올바른 방향으로 나를 잡았어! – toolshed
일괄 처리와 같은 것은 존재하지 않는다고 생각합니다. 배치 프로그램을 작성하더라도 OS는 한 번에 하나의 파일 만 처리 할 것입니다.
VBA를 사용하여 파일을 이동하려는 이유는 무엇입니까? 아마도 그렇게하는 데 가장 적합한 언어는 아닙니다. – assylias
@assylias이 작업을 수행하는 데 적합한 언어는 무엇입니까? VBA를 사용하려는 유일한 이유는 문제가있는 경우 코드를 디버깅 할 수 있기 때문입니다. PowerShell 스크립트가 아마도 최고 일 것이라고 생각하지만 PS에 익숙하지 않습니다. – toolshed
나는 PS에 익숙하지 않지만 쉘 스크립트가 잘 할 수 있다고 생각했을 것이다. – assylias