2010-12-04 1 views
1

폴더 내의 모든 하위 폴더에있는 모든 내용을 덮어 쓸 작은 배치 파일을 작성했습니다. 그것은 파일 이름이 ASCII이어야한다는 것을 제외하고는 잘 작동합니다.유니 코드 이름을 가진 파일을 일괄 처리로 덮어 쓸 수있는 방법

@REM ------- BEGIN rarthem.bat ---------------- 
@setlocal 
@echo off 
echo -------------------------------------------------- 
echo Starting to rar files 
echo -------------------------------------------------- 
echo. 
echo. 
echo. 
set path="C:\Program Files\WinRAR\";%path% 
for /D /r %%G in ("*") do (
    echo Storing files in %%G 
    echo -------------------------------------------------- 

    cd %%G 

    for %%I in (*.*) do (
     rar a -x*.rar -x*.zip -m0 -id[c] "%%~nI.rar" "%%I" 
     echo Done archiving %%~nI%%~xI 
    ) 

    echo -------------------------------------------------- 
    echo Done archiving %%~nG 
    echo -------------------------------------------------- 
    echo. 
    echo. 
    cd .. 
) 

echo Finished! 
pause 
REM ------- END rarthem.bat ------------------ 

나는 문제가 WinRAR과 유니 코드 이름을 가진 파일을 보관 아무 문제가없는 것처럼 파일 이름이 WinRar를 파싱 할 때 생기는 일이라고 생각 : 다음 작업 작은 코드입니다.

편집 : 파일 이름을 WinRAR로 구문 분석 할 때 파일 이름이 수정되어 WinRAR이 해당 이름의 파일을 찾을 때 찾을 수 없으므로 파일 이름이 수정됩니다. 예를 들어, 파일 : téxt.pdf는 파싱 될 때 text.pdf가됩니다.

작은 질문 : 7zip을 사용해 보지 못했습니다. 7zip으로 동일한 것을 쉽게 달성 할 수 있습니까?

많은 도움에 감사드립니다.

+0

어떤 변화가 있습니까? 파일 이름은 ASCII이어야하지만 유니 코드라고 말합니다. 어떻게해서든지 개종되기를 바라십니까? 7zip을 사용하여 테스트하면 유니 코드 문자가 보존됩니다. 나는 rar가 없다. –

+0

미안하지만 막연했습니다. 나는 더 많은 정보를 추가했다. 나는 그 이름을 바꿀 필요없이 파일을 수령하고 싶다. 아마 7zip을 시험해 볼 것입니다. –

+0

.7z 아카이브를 만들려면 7-zip으로 만듭니다. RAR.exe와 WinRAR.exe만이 실제 RAR 아카이브를 생성합니다. (7-Zip은 RAR의 압축을 풀 수는 있지만 만들지는 못합니다. RAR을 만드는 사람들은이 기간 동안 다른 누구에게도 압축을 풀 수있는 라이브러리 만 라이센스를 부여합니다. 따라서 생성을 위해 더 나은 도구를 사용하거나 만들려는 경우 매우 실망 스럽습니다. RAR.) –

답변

0

RAR.exe는 명령 줄을 OEM 문자 집합 (즉, 유니 코드가 아님)으로 처리합니다. 유니 코드 이름을 전달하는 유일한 방법은 목록 파일을 사용하는 것이며, 인수를 사용하여 목록 파일을 유니 코드로 지정하는 것입니다. 그러나 해당 파일은 아카이브 (EDIT : 또는 아카이브에 추가하려는 파일) 내부에서만 작동합니다. 아카이브 이름 그 자체를 제외하면 나는 해결책을 모릅니다.

RAR.exe 대신 WinRAR.exe를 사용하면 명령 행에 유니 코드 파일 이름을 전달할 수 있으며 제대로 작동합니다. GUI 진행 창이 표시되지만 WinRAR.exe는 배치 스크립트에서 실행하는 데 적합합니다 (문제 일 수도 있고 아닐 수도 있음).

일괄 처리 스크립트 자체가 유니 코드를 처리 할 수 ​​있는지 여부는 알 수 없지만 그 밖에 문제가 남아있는 경우 배치 파일 대신 VBScript 또는 JScript를 사용하도록 전환합니다. (나는 어쨌든 할 가치가있다, IMO. 나는 VBScript와 JScript에 대한 열렬한 팬이 아니지만, 적어도 배치와 같이 완전히 미친 비현실적인 의미와 한계가 없다. :))

그런데, WinRAR.exe를 사용한다면, 이전에 rar.exe에서만 가능했던 작업 디렉토리를 지정하는 기능을 포함하고 있기 때문에 현재 WinRAR 4 (현재 베타 2)를 구할 수 있습니다. 읽기 전용 디렉토리에서 파일을 추가해야하는 경우 필수적 일 수 있습니다.

내가 언급 한 목록 파일에 대해 자세히 알고 싶다면 RAR.exe 텍스트 파일 문서 또는 WinRAR.exe 기본 제공 온라인 도움말에서 자세한 내용을 확인하십시오.

희망 하시겠습니까?

+0

조언 해 주셔서 감사합니다. 나는 그것을 들여다 볼 것이다. –

관련 문제