En first.bat, j'utilise
var5=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\
CALL scripts\vc64.bat %var5%
Et dans les scripts \ vc64.bat, j'utilise
SET var6=%1vcvarsx86_amd64.bat
CALL %var6%
Mais je reçois: 'C:\Programvcvarsx86_amd64.bat' is not internal or external command.....
erreur.
Si le chemin assigné à var5 n'a pas d'espace, alors tout va bien.
J'ai essayé plusieurs combinaisons de citations et %1vcvarsx86_amd64.bat
, mais aucun changement.
Comment est-ce que je le fais fonctionne avec le chemin avec les espaces?
Pour être plus précis, supposons que ce soit C: \ abc \
In first.bat:
SET var6=C:\a b c\ =====> '"C:\avcvarsx86_amd64.bat"' is not.....`
SET var6="C:\a b c\" ====> There should not be a b
SET var6=C:\a\ b\ c\ ====> Can't find the specified path
SET var6=C:\a b c\ + Using "%var6" ====> There should not be a b
Mise à jour: Voici un exemple. Changer ab en ab fonctionne.
call.bat dans C: \
@ECHO OFF
SET var5=C:\a b\
CALL C:\1.bat "%var5%"
pause
1.battre dans C: \
@ECHO OFF
SET var6=%~1Test.bat
CALL %var6%
RMDIR /S C:\NoWorry
Test.bat dans C: \ ab Test.bat dans C: \ ab
@ECHO OFF
RMDIR /S C:\ThereIsNoSuchFolder
windows
batch-file
command-line-arguments
utilisateur565739
la source
la source
bla\ blub
) ou de mettre tout le chemin entre guillemets ("bla blub"
)?Réponses:
Pour transmettre des paramètres avec des espaces, vous devez citer le paramètre, puis supprimer les guillemets à l'aide de
%~1
.Donc, le script complet ressemblerait à
la source
1> There should not be Files。
set
dans la réponse, essayez maintenant.There should not be....
. Je ne sais pas pourquoi"%var5%"
avec un%
signe de chaque côté.