2013-07-25 3 views
0

나는 우리의 프로세스 중 하나를 자동화하기 위해 직장에서 사용할 스크립트를 만드는 프로젝트를 만들고 있습니다.특정 확장명의 모든 파일을 찾아 특정 대상에 복사하는 VBS 스크립트

.doc, .docx, .pdf, .pst 등의 파일에 대해 지정된 사용자 프로필 경로를 검색하기 위해 스크립트에서 사용자 이름 입력을 확인하고 싶습니다. 네트워크 드라이브 위치의 작성된 폴더에 그대로 복사하십시오.

내 기본 질문은 지정된 사용자 경로에서 시작하는 폴더 및 하위 폴더를 확인하는 명령 또는 명령 체인은 무엇입니까? 이러한 확장명을 가진 파일 만 복사 할 수 있습니다. 그러나 복사 할 수는 있지만 상황은 복사되지 않습니다. 동일한 파일을 반복해서 반복합니다. 혼란 스럽다면 미안 해요.

답변

0

필자는 대부분의 요구 사항을 이해했으며 이는 Windows 내에서 .BAT 파일 접근 방식을 사용하면 더 쉽게 달성 할 수 있다고 생각합니다. 이 배치 파일 (.bat) 등/삭제 등의 사본으로 명령을 실행할 수 있습니다

그래서 TEST.BAT라는 파일을 생성하고 파일 내부에 아래 스크립트를 추가 :이 할 일을 무엇

::XCOPY source [destination] 
XCOPY "C:\Temp\*.doc" "C:\Temp\another" 

을 ? 그것은 XCOPY 명령을 사용하여 .doc 확장자를 갖는 C:\Temp 디렉토리 내의 모든 파일을 복사합니다. 파일은 C:\Temp\another 폴더로 복사됩니다.

XCOPY은 원본과 대상의 두 가지 주요 인수를 취합니다. 원본은 현재 파일이있는 위치이고 대상은 파일을 복사 할 위치입니다. 사용할 수있는 모든 옵션의 자세한 정보는에서 찾을 수 있습니다 :

http://support.microsoft.com/kb/240268

, 파일을 실행 그냥 더블 클릭하거나, 필요한 때마다 실행을 예약하기 위해.

귀하의 요구 사항을 충족시키는 지 알려면 사용자 이름 입력에 대해 충분히 이해하지 못 했습니까?

1

This answer은 폴더 트리를 재귀 적으로 탐색하기위한 샘플 코드를 제공합니다. 이런 식으로 처리 된 파일의 확장자

Set extensions = CreateObject("Scripting.Dictionary") 
extensions.CompareMode = vbTextCompare 'case-insensitive 
extensions.Add "doc", True 
extensions.Add "docx", True 
extensions.Add "pdf", True 
extensions.Add "pst", True 
... 

다음 검사 : 확장자 목록이 사전을 생성하여 처리 할 수 ​​

For Each f In fldr.Files 
    If extensions.Exists(objFso.GetExtensionName(f.Name)) Then 
    f.Copy targetFolder & "\" 
    End If 
Next 

대상 폴더 때 역 슬래시가 필요한, 그렇지 않으면 대상 파일 이름을 포함하는 전체 대상 경로를 지정해야합니다.

관련 문제