2010-08-10 5 views
3

J'ai un script batch qui déclenche vlc pour moi sur mon réseau, le problème est qu'il s'ouvre sur la base des URL dans un navigateur. Le navigateur ajoute automatiquement le% 20 à la place d'un espace régulier, et j'ai besoin de le remplacer par un espace régulier dans mon script batch avant d'envoyer le chemin du fichier à vlc.Décodage de l'URL de script par lots Windows

Voici mon code; Il est à noter que cela fonctionnera sur un système Windows 7 et/ou Vista.

+0

Quelle est la question? –

+0

Ah ... je vois. Puisque '%' est le délimiteur de la variable '% str%', il y a un problème pour utiliser la substitution de chaîne pour sa valeur, qui contient aussi '%'. –

+0

Pourquoi sautez-vous huit caractères? Vous semblez avoir des suppositions sur la syntaxe de l'URL que vous attendez, mais vous n'écrivez pas ce que ce sont. Merci de les ajouter à la question. – oberlies

Répondre

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 

Vous avez également pris la liberté de corriger d'autres problèmes. Si le script s'exécute avec des guillemets autour de l'argument, il a toujours un ". Expansion retardée vous donne un deuxième ensemble de délimiteurs variables ici qui évite le problème avec le %. En outre, start n'est pas nécessaire autant que je peux voir, sauf si vous dépendez de façon critique de VLC ayant son propre répertoire comme chemin de démarrage.

+0

Oups! - Cette réponse n'était pas visible pour moi quand j'ai écrit mes commentaires à la question. - ** + 1 ** cependant. - J'étais moi-même en train de lutter avec 'enabledelayedexpansion' mais je n'ai pas réussi à travailler ici. –

Questions connexes