2010-08-10 4 views
3

내 네트워크에서 vlc를 트리거하는 배치 스크립트가 있습니다. 브라우저의 URL을 기반으로 열리는 문제가 있습니다. 브라우저는 자동으로 일반 공간 대신 ​​% 20을 추가합니다.이 파일 경로를 vlc에 보내기 전에 일괄 처리 스크립트에서이 파일을 다시 일반 공간으로 바꿔야합니다.Windows 일괄 스크립트 URL 디코딩

내 코드는 다음과 같습니다.

이것은 Windows 7 및/또는 Vista 시스템에서 실행됩니다.

+0

무엇이 문제입니까? –

+0

아 ... 알겠습니다. '%'는'% str %'변수의 구분자이므로 '%'가 포함 된 값에 문자열 substition을 사용하는 데 문제가 있습니다. –

+0

왜 8자를 건너 뛰 시나요? 당신은 당신이 기대하는 URL 구문에 대한 가정을 가지고있는 것 같지만, 당신은 이것들이 무엇인지를 쓰지 않고있다. 질문에 추가하십시오. – oberlies

답변

7
@echo off 
setlocal enabledelayedexpansion 
set str=%~1 
set str=%str:~7% 
set str=!str:%%20= ! 
"C:\Program Files\VideoLAN\VLC\vlc.exe" "%str%" 
pause 

다른 것들도 수정할 자유가 있습니다. 스크립트가 인수를 따옴표로 묶은 경우에는 항상 후행 "이 있습니다. 지연된 확장을 사용하면 %의 문제를 피할 수있는 두 번째 변수 구분 기호 세트를 사용할 수 있습니다. 또한 start은 내가 볼 수있는 한 필요하지 않습니다. VLC가 자체 경로를 시작 경로로 사용하는 경우가 아니라면.

+0

-이 질문에 내 의견을 적었을 때이 대답을 볼 수 없었습니다. - ** + 1 **. - 나는'enabledelayedexpansion'으로 고심하고 있었지만 여기서는 효과가 없었다. –

관련 문제