문제

나는 일부 디렉토리에서 약간의 zip에있는 RAR을 추출하려고합니다. 짧은 이야기 이것은 RAR 파일을 통한 내 루프입니다.

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

unrar x %%r
)

문제는 %% r이 잘못된 값을 얻는다는 것입니다. 파일 이름이 "file name.rar"인 경우 %% r은 "파일"값을 가져옵니다. 파일 이름의 첫 번째 공간에서 중지됩니다.

이 루프가 이름이 공간이있는 파일 파일을 작동시키는 방법은 무엇입니까?

고맙습니다

도움이 되었습니까?

해결책

이 시도:

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

배치 파일로 사용하는 경우 탈출하려면 징후를 두 배로 늘려야합니다.

다른 팁

%%r 공백을 포함한 완전한 파일 이름이 포함됩니다. 그것은 당신의 전화입니다 unrar 문제가 있습니다. 파일 이름에 공백이 포함 된 경우 인용 표시로 공간을 동봉해야합니다. unrar 두 개의 (공간 분리) 매개 변수를 볼 수 없습니다. file 그리고 name.rar 실제로 공간이있는 단일 파일 이름입니다.

따라서 다음이 작동합니다.

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

또한 문제가 어디에 있는지 궁금한 점이 있다면 때로는 프로그램 호출을 Echo로 간단히 바꾸는 것이 매우 도움이됩니다.

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

%% r에는 파일 이름의 공간이 포함되어 있으며 찢어지지 않습니다.

문제는 'for'가 기본 구분으로 공간을 사용한다는 것입니다. delims = xxx를 사용하여 이것을 설정할 수 있습니다. 바라보다 여기 구문. 또는 사용할 수 있습니다 forfiles.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top