No first.bat, eu uso
var5=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\
CALL scripts\vc64.bat %var5%
E em scripts \ vc64.bat, eu uso
SET var6=%1vcvarsx86_amd64.bat
CALL %var6%
Mas eu recebo: 'C:\Programvcvarsx86_amd64.bat' is not internal or external command.....
erro.
Se o caminho atribuído a var5 não tiver espaço, tudo bem.
Tentei várias combinações de citações e %1vcvarsx86_amd64.bat
, mas nenhuma alteração.
Como faço para que ele funcione com caminho com espaços?
Para ser mais preciso, suponha que seja 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
Atualização: Aqui está um exemplo. Altere ab para ab funciona.
call.bat em C: \
@ECHO OFF
SET var5=C:\a b\
CALL C:\1.bat "%var5%"
pause
1.bat em C: \
@ECHO OFF
SET var6=%~1Test.bat
CALL %var6%
RMDIR /S C:\NoWorry
Test.bat em C: \ ab Test.bat em C: \ ab
@ECHO OFF
RMDIR /S C:\ThereIsNoSuchFolder
windows
batch-file
command-line-arguments
user565739
fonte
fonte
bla\ blub
) ou colocar o caminho inteiro entre aspas ("bla blub"
)?Respostas:
Para passar parâmetros com espaços, é necessário citar o parâmetro e remover as aspas usando
%~1
.Portanto, o script completo se pareceria
fonte
1> There should not be Files。
set
na resposta, tente agora.There should not be....
. Não sei porque."%var5%"
com uma%
placa de cada lado.