2014-04-24 2 views
1

두 개의 공유 드라이브가 있습니다. 그 중 하나는 매우 복잡한 폴더 구조를 가지고 있습니다. 공유 1의 전체 폴더 구조를 복제 2로 복제하고 싶습니다. 그러나 중복 파일을 만들고 싶지 않습니다. 대신 2 차 공유에 바로 가기 또는 기호 링크가 있어야합니다. Robocopy와 mklink와 같은 기존 도구로이 작업을 시도했지만 그 결과를 얻지 못했습니다. 이 문제를 해결하기위한 모든 아이디어는 높이 평가됩니다.바로 가기 만 사용하여 복잡한 폴더 구조 복제

+0

기본적으로 폴더 구조를 미러링하고 파일에 대한 심볼릭 링크를 넣으시겠습니까? –

답변

0

filesystemobject을 사용하여 폴더 구조 아래로 작업 할 수 있습니다. 폴더가 대상에있는 경우 아무 것도하지 않고 모든 호스팅 폴더 파일에 대해 해당 폴더의 바로 가기를 만듭니다. 그렇지 않으면 폴더를 만들고 어쨌든 호스팅 파일에 대한 바로 가기를 만듭니다.

DoFolder 하위는 모든 하위 폴더로 내려갑니다. GetFN 함수는 호스팅 폴더에있는 모든 파일의 파일 이름 만 수집합니다. 파일 이름에 마침표가 있더라도.

이 프로그램은 재미있는 프로그램이었습니다. 감사합니다.

FolderShadows.vbs

Dim fso, HostFolder, DestFolder 

'Host Folder - Folder must exist. 
HostFolder = "C:\From\Folder" 

'Destination Folder - Folder must exist. 
DestFolder = "D:\To\Folder" 

Set fso = CreateObject("Scripting.FileSystemObject") 
DoFolder fso.GetFolder(HostFolder) 
Sub DoFolder(Folder) 
    Dim SubFolder 
    If fso.folderexists(Replace(fso.GetAbsolutePathName(Folder), HostFolder, DestFolder)) = False Then 
     fso.createfolder(Replace(fso.GetAbsolutePathName(Folder), HostFolder, DestFolder)) 
    End If 
    For Each SubFolder In Folder.SubFolders 
     DoFolder SubFolder 
    Next 
    Dim File 
    For Each File In Folder.Files 
     Dim FileName, shortcut 
     If (fso.fileexists(Replace(fso.GetAbsolutePathName(Folder), HostFolder, DestFolder) & "\" & GetFN(File.Name) & ".lnk") = False) Then 
      FileName = Replace(fso.GetAbsolutePathName(Folder), HostFolder, DestFolder) & "\" & GetFN(File.Name) & ".lnk" 
      Set shortcut = CreateObject("WScript.Shell").CreateShortcut(FileName) 
      shortcut.Description = "Shortcut To " & File.Name 
      shortcut.TargetPath = fso.GetAbsolutePathName(Folder) & "\" & File.Name 
      shortcut.Save 
     End If 
    Next 
End Sub 
Function GetFN(FileName) 
    Dim Result, i 
    Result = FileName 
    i = InStrRev(FileName, ".") 
    If (i > 0) Then 
     Result = Mid(FileName, 1, i - 1) 
    End If 
    GetFN = Result 
End Function 

: 새로운 파일/폴더가 발견 될 경우는 자동 업데이트로 바로 가기 및 폴더를 내장으로이 스크립트는 자동화 된 일정에 따라 실행할 수 있습니다.