In first.bat benutze ich
var5=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\
CALL scripts\vc64.bat %var5%
Und in scripts \ vc64.bat verwende ich
SET var6=%1vcvarsx86_amd64.bat
CALL %var6%
Aber ich bekomme: 'C:\Programvcvarsx86_amd64.bat' is not internal or external command.....
Fehler.
Wenn der var5 zugewiesene Pfad kein Leerzeichen enthält, ist dies in Ordnung.
Ich habe mehrere Zitatkombinationen ausprobiert und %1vcvarsx86_amd64.bat
, aber keine Änderung.
Wie mache ich es mit Pfad mit Leerzeichen?
Nehmen wir genauer an, es ist 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
Update: Hier ist ein Beispiel. Ändern Sie ab zu ab works.
call.bat in C: \
@ECHO OFF
SET var5=C:\a b\
CALL C:\1.bat "%var5%"
pause
1.bat in C: \
@ECHO OFF
SET var6=%~1Test.bat
CALL %var6%
RMDIR /S C:\NoWorry
Test.bat in C: \ ab Test.bat in C: \ ab
@ECHO OFF
RMDIR /S C:\ThereIsNoSuchFolder
windows
batch-file
command-line-arguments
user565739
quelle
quelle
bla\ blub
) zu maskieren oder den gesamten Pfad in Anführungszeichen ("bla blub"
) zu setzen?Antworten:
Um Parameter mit Leerzeichen zu übergeben, müssen Sie den Parameter in Anführungszeichen setzen
%~1
. Anschließend können Sie die Anführungszeichen mit entfernen .Das vollständige Skript würde also so aussehen
quelle
1> There should not be Files。
set
in der Antwort, versuchen Sie es jetzt.There should not be....
. Ich weiß nicht warum."%var5%"
mit einem%
Schild an jeder Seite verwenden.