2010-04-10 4 views
3

Donc, voici mon problème: Je veux utiliser% cd% pour qu'un utilisateur puisse exécuter un script où il veut le placer, mais si% cd% contient des espaces, alors il échouer (indépendamment des citations). Si je code en dur le chemin, il fonctionnera avec des guillemets, mais s'il s'agit d'une variable, il échouera.Windows Batch Scripting Problème - Citations Variables contenant des espaces

ne réussit pas: (si%% cd contient des espaces) "% cd% \ Testing.bat"

Works: "C: \ Program Files \ Testing.bat"

Toutes les idées?

Répondre

3

%CD% est pas la bonne façon de le faire, car il indique le répertoire dans lequel l'utilisateur se trouvait lors de l'appel du script, pas le répertoire où se trouve le script.

utilisation %~dp0 au lieu d'extraire les informations de lecteur et le chemin de %0:

REM C:\Program Files\test_caller.bat 
@echo I am the caller and I reside in: "%~dp0" 
@"%~dp0\test.bat" 

...

REM C:\Program Files\test.bat 
@echo Yippeee! 

...

C:\>"\Program Files\test_caller.bat" 
I am the caller and I reside in: "C:\Program Files\" 
Yippeee! 

C:\>e: 

E:\>"C:\Program Files\test_caller.bat" 
I am the caller and I reside in: "C:\Program Files\" 
Yippeee! 
Questions connexes