두 개의 공유 드라이브가 있습니다. 그 중 하나는 매우 복잡한 폴더 구조를 가지고 있습니다. 공유 1의 전체 폴더 구조를 복제 2로 복제하고 싶습니다. 그러나 중복 파일을 만들고 싶지 않습니다. 대신 2 차 공유에 바로 가기 또는 기호 링크가 있어야합니다. Robocopy와 mklink와 같은 기존 도구로이 작업을 시도했지만 그 결과를 얻지 못했습니다. 이 문제를 해결하기위한 모든 아이디어는 높이 평가됩니다.바로 가기 만 사용하여 복잡한 폴더 구조 복제
1
A
답변
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
주 : 새로운 파일/폴더가 발견 될 경우는 자동 업데이트로 바로 가기 및 폴더를 내장으로이 스크립트는 자동화 된 일정에 따라 실행할 수 있습니다.
기본적으로 폴더 구조를 미러링하고 파일에 대한 심볼릭 링크를 넣으시겠습니까? –