보관을위한 배치 스크립트


1

Windows 명령 줄과 WinRAR (또는 다른 유사한 프로그램)을 사용하여 Windows 7에서 보관 작업을 설정해야합니다. 이 작업을 수행하는 스크립트를 만들고 싶지만 사전 경험이 없습니다.

나는 할 수 있기를 원한다 :

  • 폴더 하위 구조를 지정된 수준으로 다시 작성

  • 마지막 레벨의 각 하위 폴더의 내용을 해당 하위 폴더의 이름을 가진 하나의 아카이브에 보관합니다.

  • 비밀 번호는 아카이브를 보호

  • 아카이브를 지정된 크기의 덩어리로 분할

  • A(보관) 속성 이있는 파일 만 포함 할 수 있습니다.

  • A보관 후 (보관) 속성을 지우십시오.

  • 텍스트 파일에 특정 파일 및 폴더를 지정하여 제외시킬 수 있습니다.

도움을 주시면 감사하겠습니다.

또한 새로운 것을 배울 준비가되었으므로이 작업을 수행하는 데 도움이 될 몇 가지 자습서를 알려주는 것도 대단히 감사합니다.

편집하다:

다음 예제를 고려하십시오.라는 폴더의 내용을 아카이브하고 DOCS해당 구조를 레벨 2로 다시 작성 한다고 가정하십시오 ( 'DOCS'는 레벨 0으로 간주 됨). 하위 폴더의 구조는 두 번째 수준으로 다음과 같습니다.

DOCS\L1-A\L2-A\

DOCS\L1-A\L2-B\

DOCS\L1-A\L2-C\

DOCS\L1-B\L2-A\

DOCS\L1-B\L2-B\

DOCS\L1-B\L2-C\

다음과 같은 구조적 백업을 원합니다 (다른 파티션 또는 드라이브에서).

DOCS\L1-A\L2-A\L2-A.rar

DOCS\L1-A\L2-B\L2-B.rar

DOCS\L1-A\L2-C\L2-C.rar

DOCS\L1-B\L2-A\L2-A.rar

DOCS\L1-B\L2-B\L2-B.rar

DOCS\L1-B\L2-C\L2-C.rar


1
WinRAR 명령 행 옵션을보고 도움이 될 수있는 옵션을 식별 했습니까? 두 번째 요구 사항을 작은 예를 통해 자세히 설명 할 수 있습니까?
Karan

@ Karan : 나는 op를 편집하고 최소한의 예를 주었다. WinRAR 명령 행 옵션을 살펴 보았지만 언급 한대로 구조화 된 폴더를 다시 만들 수는 없습니다 (다른 모든 측면은 WinRAR 내에서 달성 할 수 있지만 폴더 구조를 자동으로 진행하는 방법을 모르겠습니다).
디지털 잉크

흠, 상당히 복잡한 배치 스크립트를 사용하여 수행하려는 작업 (각 2 단계 디렉토리의 내용을 별도로 보관)이 가능할 수 있습니다. 배치를 통해이 작업을 수행해야합니까? 이와 같은 IMO는 배치 기반 솔루션을 사용하는 대신 PowerShell에서 훨씬 쉽게 수행 할 수 있습니다.
Karan

@Karan : 모든 종류의 솔루션을 환영합니다.
디지털 잉크

1
저는 PS 전문가는 아니지만 태그를 편집 했으므로 PS 태그를 주시하는 사람들에게이 질문에 대한 알림을 받고 답변을 드리겠습니다.
Karan

답변:


2

이것은 1 단계와 2 단계에서 작동합니다. 미러 된 폴더 트리 구조의 각 레벨 2 폴더에 대해 "Level2Name.rar"라는 rar 파일이 작성됩니다.

rar 파일 ( "Docs / Lv1 / Lv2 / Files") 내에 폴더 트리 구조를 포함 시키려면 winrar 명령에서 -ep를 제거하십시오.

setlocal
set savelocation=D:\Backups
set path=%path%;C:\Program Files\WinRAR
for /F "eol= usebackq delims=" %%A IN (`dir "DOCS" /A:D /B`) do call :FL1 "%%A"
goto :eof

:FL1
pushd DOCS\%1
set level1="%~nx1"
for /F "eol= usebackq delims=" %%A IN (`dir * /A:D /B`) do call :FL2 "%%A"
goto :eof

:FL2
set level2="%~nx1"
POPD
if not exist "%savelocation%\DOCS\%level1%\%level2%" mkdir "%savelocation%\DOCS\%level1%\%level2%"
winrar a -ibck -inul -ep "%savelocation%\DOCS\%level1%\%level2%\%level2%.rar" "DOCS\%level1%\%level2%"
goto :eof

endlocal 

+1 이것을 직접 테스트하지는 않았지만 좋아 보인다!
Karan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.