박쥐 파일을 만들어 공유 폴더를 만들고 모든 사용자 프로필의 특정 폴더 내용을 복사하는 방법


3

컴퓨터 이름을 기반으로 네트워크 폴더를 만드는 배치 파일을 만든 다음 각 프로필의 바탕 화면, 내 문서, 즐겨 찾기를 해당 공유로 복사하려고합니다. 그래서 목적지는 다음과 같아야합니다 : \\server\share\computername\profile name\Mydocuments

computername dir을 만들 수 있습니다. 그러나 아무것도 복사하지 않습니다. 나는 이것을 시도했다 ....

@echo off
md \\servername\sharename\profile backups\%computername%
cd C:\Documents and Settings
xCopy "\%%\Desktop" \\servername\sharename\profile backups\%computername% "%computername%\%%\*.*" 

몇 가지 다른 방법을 시도했지만 공유에 복사 할 수는 없습니다. 변수 computername을 읽어야하므로 수동으로 입력하지 않아도됩니다. 도와주세요


변수 userprofile 이름을 읽을 필요가 없습니다
Layton

답변:


0

일부 변수 이름이 누락 된 것 같습니다.

제공된 코드에서 : 첫 번째를 %%%homepath%바꾸고 두 번째를%username%

%homepath%"C : \ documents and settings \"부분이 포함되어 있으므로 먼저 해당 디렉토리로 변경할 필요가 없습니다.

또한 공백을 포함하거나 잠재적으로 공백을 포함하는 경로는 따옴표로 묶습니다.

마지막으로 XCopy 스위치를 사용 하여 할당 된 권한복사하십시오 .

@echo off
md "\\servername\sharename\profile backups\%computername%"
xcopy "\%homepath%\Desktop" \\servername\sharename\profile backups\%computername% "%computername%\%username%\" /O /X /E /H /K

그래도 도움이되었지만 각 프로필 디렉토리를 복사하고 만들려면 스크립트가 필요합니다. % username % 인수는 로그온 한 사용자 만 복사합니다.
Layton

그런 다음 프로필 목록을 반복하는 루프를 포함하도록 스크립트를 확장해야합니다. 모든 프로파일이 포함 된 디렉토리 목록에서 정보를 가져 와서 해당 목록을 가져 오는 것도 스크립팅 할 수 있습니다. 이를 바탕으로 PowerShell (또는 VBS)에서이 작업을 수행하는 것이 좋습니다.
Ƭᴇcʜιᴇ007

어려운 스크립트가 필요하지 않습니다. 전체 "c : \ documents and settings \"디렉토리를 서버로 복사하십시오. 모든 컴퓨터 DNS 이름이 다른 경우 먼저 "mkdir \\ servername \ share \ % computername %"을 사용하여 서버의 폴더에 프로파일을 배치 할 수 있습니다. 또한 UNC 이름을 사용하므로 이와 같은 작업에 대해 robocopy가 훨씬 좋습니다. 드라이브 문자보다는.
JohnnyVegas

Cacl ( calc 와 혼동하지 말 것)은 권한 및 공유에도 사용할 수 있습니다.
neverMind9
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.