Übergeben Sie als Parameter einen Pfad mit Leerzeichen zu einer Batchdatei

6

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
user565739
quelle
Haben Sie versucht, die einzelnen Leerzeichen mit Backslashes ( bla\ blub) zu maskieren oder den gesamten Pfad in Anführungszeichen ( "bla blub") zu setzen?
Feeela

Antworten:

8

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

SET var5=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\
CALL scripts\vc64.bat "%var5%"

SET var6=%~1vcvarsx86_amd64.bat
CALL %var6%
Bali C
quelle
Das gibt mir1> There should not be Files。
user565739
Es funktioniert gut für mich, mir fehlte ein setin der Antwort, versuchen Sie es jetzt.
Bali C
Mit "% var5" geben Sie nur Fehler wie There should not be..... Ich weiß nicht warum.
user565739
Ich meine, die Verwendung von quote mit% (Variablenname) gibt mir nur eine Fehlermeldung und kann vc64.bat nicht aufrufen. Ohne die Anführungszeichen kann es vc64.bat aufrufen, aber der Parameter ist nicht gut.
user565739
Sie müssen "%var5%"mit einem %Schild an jeder Seite verwenden.
Bali C