2009-05-04 3 views
2

일부 디렉토리의 일부 zip에있는 일부 rar를 일괄 적으로 추출하려고합니다. 긴 이야기를 짧게 이것은 rar 파일을 통해 내 루프입니다 :이름에 공백이있는 일괄 추출 rars

문제는 %% r이 잘못되었습니다. 파일 이름이 "file name.rar"이면 %% r은 "file"값을 가져옵니다 - 파일 이름의 첫 번째 공백에서 멈 춥니 다.

어떻게이 루프를 이름에 공백이있는 파일 파일로 작업하게합니까?

당신에게

답변

1

이 시도 :

for /f "usebackq delims==" %i in (`dir /b *.rar`) do unrar x "%i" 

배치 파일에서 사용하는 경우, 당신이 그들을 탈출 퍼센트 기호를 두 배로해야합니다 기억하십시오.

+0

고맙습니다. – Bojan

0

문제는 '대한이'로 구분 기본으로 공간을 사용한다는 것입니다 감사합니다. delims = xxx를 사용하여이를 설정할 수 있습니다. 문법은 here입니다. 또는 ForFiles을 사용할 수 있습니다.

+0

cmd는 별표가있는 곳에서 globbing을 수행하는 UNIX 쉘도 아닙니다. 모든 rar 파일의 경우 공백이 있는지 여부와 상관없이 파일 이름이 %% r에 완전히 포함됩니다. – Joey

1

%%r에는 공백을 포함한 전체 파일 이름이 포함됩니다. 문제가있는 unrar에 대한 귀하의 전화입니다. 파일 이름에 공백이 있으면 따옴표로 묶어야합니다. 그렇지 않으면 unrar은 두 개의 (공백으로 구분 된) 매개 변수 filename.rar이 실제로는 하나의 공백이있는 파일 이름임을 알 수 없습니다.

그래서 다음 작동합니다 :

for %%r in (*.rar) do unrar "%%r" 

를 또한 문제가있다 당신 AER 호기심, 그것은 때로는 매우 도움이 있다면 단순히 에코와 프로그램 호출 교체하려면 :

for %%r in (*.rar) do @echo %%r 

을 %% r에 파일 이름의 공백이 포함되어 있고 그 공백을 찢어 버리지 않습니다.

+0

나는 그것을 생각했지만 여전히 그렇게 작동하지는 않을 것이다. 그것은 %% r이 정말로 잘못된 값을 가지고 있고 큰 따옴표가 많은 것을 의미합니다. 어쩌면 다른 뭔가 잘못 생각한 것 같습니다. 모르겠습니다. – Bojan