Robocopy는 1 분 미만의 시간 단위로 파일을 모니터링 할 수 있습니까?


10

Robocopy소스 디렉토리를 모니터하고 변경 사항이있는 파일을 복사하는 옵션이 있습니다. 당신은 복사하는 (전에 디렉토리에 많은 변화가 발생해야하는 방법을 지정할 수 있습니다 /mon n어디에 n얼마나 오랫동안 다시 검색하기 (하기 전에 대기하는 변경 번호) /mot t여기서 t분에서 대기하는 시간이가).

스캔하는 파일이 1 개뿐이므로 폴더를 거의 지속적으로 모니터링하고 싶습니다. 기본적으로 변경 사항을 원합니다. 그래도 1 분 미만의 시간 동안 robocopy 모니터를 만들 수없는 것 같습니다. 시도했지만 /mot 0.5실패합니다. 또한 시도 /mot 0하고 robocopy는 지속적으로 모니터링하지 않고 한 번 스캔 한 후에 종료됩니다.

1 분 미만의 시간 단위로 robocopy가 폴더를 거의 연속적으로 스캔하도록하려면 어떻게해야합니까? 또는 파일 소스를 지속적으로 모니터링하고 변경 사항을 실시간으로 복사 할 수있는 다른 명령 줄 도구가 있습니까?


Robocopy가되어야합니까?
Ƭᴇcʜιᴇ007

@ techie007 동일한 요구 사항을 충족하는 다른 것이 있으면 가능하면 타사 도구를 피하고 싶지만 괜찮습니다. 그러나 타사의 완벽한 솔루션이 있다면 고려할 것입니다.
nhinkle

@ techie007-닌클과 동일한 정확한 문제가 있으며 동일한 방식으로 Robocopy를 사용하고 있습니다. Windows에서 잘 작동하는 대체 솔루션을 알고 있다면 그 솔루션을 사용할 수 있습니다. 우리와 함께 공유하시기 바랍니다
Durden81

지금 Freefilesync 테스트 중입니다. 필요한 도구 인 것 같습니다.
Durden81

답변:


8

로보 카피

/mot:<M>
Monitors source, and runs again in M minutes if changes are detected.

몇 분만 인수로 받아들이므로 더 자주 실행하도록 강요 할 수 없습니다. 그러나 배치 파일을 사용하여 파일을 실행하고 robocopy가 아닌 배치 파일 또는 예약 된 작업에서 타이밍 및 루핑이 발생하도록 할 수 있습니다.


1
예, "ping -n 1 -w 500 1.2.3.4> NUL"을 사용하여 0.5 초 동안 잠자기 한 후 : LABEL 및 GOTO 문 (cmd에서)으로 반복합니다
Stig Eide

13

태그에는 Windows 8을 사용 중이라고 표시되어 있습니다. PowerShell이라는 훌륭한 도구와 이름이 작은 편리한 cmdlet이 있기 때문에 좋습니다 Register-ObjectEvent.

텍스트 파일을 만들고 확장자를로 변경 한 .ps1다음 아래 스크립트를 파일에 붙여 넣으십시오. 보고자하는 $watchedFolder폴더로 변수를 변경하십시오 . robocopy 명령 등을 포함하도록 Do-Something 기능을 변경하십시오. 스크립트가 실행되고있는 한 감시 폴더에서 파일이나 폴더가 변경 될 때마다 해당 기능이 실행됩니다 (거의 즉시!).

Windows 시작시이 스크립트를 실행할 수 있으며 타이머를 사용하지 않고 항상 백그라운드에서 실행됩니다.

$block = {    
    function Do-Something
    {
        param ($message, $event)
        # function to call when event is raised
        # do a robocopy or whatever

        Start-Process cmd.exe "/C echo $("{0} {1}" -f $event.SourceEventArgs.FullPath, $message)&pause"
    }

    $watchedFolder = "C:\Users\Admin-PC\Desktop"
    $watcher = New-Object System.IO.FileSystemWatcher
    $watcher.Path = $watchedFolder

    Register-ObjectEvent -InputObject $watcher -EventName Created -SourceIdentifier File.Created -Action { Do-Something "Created" $event }
    Register-ObjectEvent -InputObject $watcher -EventName Deleted -SourceIdentifier File.Deleted -Action { Do-Something "Deleted" $event }
    Register-ObjectEvent -InputObject $watcher -EventName Changed -SourceIdentifier File.Changed -Action { Do-Something "Changed" $event }
    Register-ObjectEvent -InputObject $watcher -EventName Renamed -SourceIdentifier File.Renamed -Action { Do-Something "Renamed" $event }
}

$encodedBlock = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($block))

Start-Process PowerShell.exe -verb Runas -argumentlist '-WindowStyle Hidden', '-NoExit', '-EncodedCommand', $encodedBlock

실제로보기


  1. 저장된 스크립트를 실행하십시오.
    저장된 스크립트를 실행하십시오.

  2. 콘솔 창이 깜빡이는 것을 볼 수 있습니다. 실행 중임을 나타내는 유일한 표시가 닫히면 몇 가지 새로운 프로세스가 있습니다.
    여기에 이미지 설명을 입력하십시오

  3. 테스트하기 위해 데스크탑에서 몇 가지 작업을 수행하십시오.
    여기에 이미지 설명을 입력하십시오

  4. 더 이상 실행하지 않으려면 작성된 PowerShell 프로세스를 종료하십시오.

일부 배경 정보 -이 답변에 사용 된 도구에 익숙하지 않은 경우.



1
이것이 가장 좋은 대답입니다. 이 솔루션은 이벤트 중심이므로 변경이 발생할 때까지 CPU를 사용하지 않으며 프로그램은 즉시 응답합니다. 또한 뛰어난 쓰기 기능.
CoolHandLouis

5

DSynchronize 는 하드 디스크, 플로피 디스크, LAN, USB 키, CD-DVD (패킷 쓰기 소프트웨어 포함) 및 FTP 서버에있는 둘 이상의 폴더를 주기적으로 동기화 할 수있는 독립형 유틸리티입니다. 그것은 정확히 질문에 관한 것이 아니라 내가 찾을 수있는 가장 가까운 것입니다.

나도 Robocopy에서 최소 1 분의 시간에 대한 해결책을 찾고 있었고이 2 살짜리 질문을 발견했다. 나는이 소프트웨어를 내게 제안하게되었고 이것이 내가 사용하고있는 것입니다. 기록적으로는 소프트웨어와 관련이 없습니다.

장점 :

  • 실시간 동기화 기능이 있습니다.
  • 여러 폴더 쌍을 추가하고 옆에있는 확인란을 사용하여 주어진 시간에 활성화 된 쌍을 선택할 수 있습니다.
  • 설치 프로그램 없음, 독립형 프로그램.
  • '필터'버튼을 클릭하여 패턴 또는 수정 된 시간으로 파일을 제외하거나 포함 할 수 있습니다.
  • (기타; 아래 스크린 샷 참조. 확인란과 버튼에는 추가 도움말 툴팁이 있습니다.)

단점 :

  • GUI 유틸리티이며 사용 가능한 명령 줄 스위치가 없습니다.
  • 폴더 쌍은 모두 동일한 설정을 공유합니다

스크린 샷

실시간 동기화 옵션은 스크린 샷의 '특별 옵션'섹션에 표시되어 있습니다. 이것이 질문이 목표로 묘사하는 것입니다. 체크되어 있지 않고 타이머가 설정되어 있지 않으면 '동기화'버튼을 클릭하여 일회성 동기화를 시작할 수 있습니다.

두 폴더를 동기화하는 방법 :

  • 왼쪽 상단의 찾아보기 대화 상자를 사용하여 모니터링 할 소스 폴더를 선택하십시오.
  • 오른쪽 상단에서 변경 사항을 복사 할 대상 폴더를 선택하십시오.
  • (선택 사항) 찾아보기 대화 상자를 사용하는 대신 폴더 경로를 수동으로 입력 한 경우 상단의 두 상자 사이에있는 '테스트'버튼을 클릭하여 해당 폴더가 실제로 존재하는지 확인하십시오. 대부분의 경우 '존재하지 않는 경우 폴더 만들기'를 확인하여 새 폴더가 기본적으로 선택 해제되어 있으므로 기본적으로 파일 만 복사하므로 새 폴더가 복사되는지 확인하십시오.
  • '실시간 동기화'확인란을 선택하십시오. 이제 동기화가 활성화되고 왼쪽 폴더의 모든 변경 사항이 오른쪽 폴더로 복사됩니다.

또한 소프트웨어가 작동하는 YouTube 비디오를 찾았습니다 . 이전 버전이 표시되고 옵션이 같은 위치에 있지 않지만 소프트웨어 작동 방식에 대한 느낌을 제공합니다.


이 질문은 (로보 카피에서) 무언가를 만드는 방법을 묻습니다. 다른 도구를 사용하여 동일한 결과를 얻는 방법을 설명하는 대체 솔루션을 제안하는 것이 좋습니다. 그러나 이것은 실제로 문제를 해결하는 방법을 설명하지는 않습니다.
fixer1234

@ fixer1234 원래 질문에 대해 의견을 말하려고했지만 내 계정이 너무 새롭기 때문에 (내 대답에 대해서는 의견을 달 수 있습니다.) 나도 robocopy에서 최소 1 분의 시간에 대한 해결책을 찾고 있었고이 2 살짜리 질문을 발견했습니다. 위의 소프트웨어가 나에게 제안되었으므로 이것이 내가 사용하는 것입니다. 같은 상황에있는 다른 사람들은 그것이 유용하다고 생각했습니다. 그게 전부입니다. 겉보기에는 간단한 작업 (폴더 동기화)의 경우 솔루션을 찾기 위해 얼마나 많이 검색해야하는지 놀라워합니다.
Ashley Wilson

내 대답의 명확성을 위해-스크린 샷을 첨부 할 수 있기를 바랍니다 (다시 말하면 계정이 너무 새롭습니다). 더 명확하게 만들었습니다. 한 화면 GUI이며 모든 옵션이 명확하게 표시되고 간단합니다. 이해하다.
Ashley Wilson

파일 공유 서비스를 사용하는 경우 이미지에 대한 링크를 추가하면 누군가가 이미지를 포함시킵니다. 정기적으로 사용하지 않으면 imgur.com과 같은 무료 제품이 많이 있습니다.
fixer1234

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.