2012-06-07 9 views
0

배치 파일을 통해 UNIX/Windows 디렉토리에서 SharePoint 디렉토리로 파일을 이동하려고합니다. 사용하고자하는 명령은 단지 move g:\...\*.* z:\ 일 뿐이며 현재 열려있는 파일을 이동하려고하지는 않습니다. 디렉토리의 파일이 열려 있거나 사용 중인지 확인한 다음 열려 있지 않은 파일에서만 이동을 수행 할 수 있습니까?파일 열기 여부 확인

+0

가능한 [중복] (http://stackoverflow.com/questions/162291/how-to-check-if-a-process- is-running-via-a-batch-script) –

+0

OS가 소스 디렉토리를 제어합니까? 로컬 fs (ntfs)입니까? – wmz

+0

배치 파일은 두 디렉토리가 모두 매핑되어있는 Windows Server 시스템에서 실행됩니다. – Bigby

답변

1

UNIX의 경우 Windows Sysinternals handle 유틸리티에서 각각 fuser을 사용하여 어떤 프로세스에 파일이 열려 있는지 쿼리 할 수 ​​있습니다.

두 가지 모두 복사 시스템이 아닌 소스 파일 시스템을 제어하는 ​​시스템에서 실행해야한다는 점에 유의하십시오.

은이 방법

일반 문제는 체크인 이동 작업이 원자가 없습니다 : 내가 제대로 가정하면 당신은 그러나, 파일 상태는 확인 후 변경하지 않은하지만 전에 이동/복사하기 시작 있는지 확인하지 않을 수도 있습니다 공유 드라이브에 뭔가를 집어 넣는 시나리오를 가지고 있는데, Sharepoint에서 소비하기 때문에 이동을 시도하기 전에 '구운'상태인지 확인하려는 것입니다. 그런 다음 일반적인 방법은 이동을 통해 제작자 측에서이를 제어하는 ​​것입니다 작업이 완료 될 때만 공유 리소스로 보냅니다. 생산자를 직접 통제 할 수 없다면 위에 언급 된 유틸리티를 사용하여이를 달성 할 수 있습니다.