Передайте шлях з пробілом у пакетний файл як параметр


6

У first.bat, я використовую

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

А в скриптах \ vc64.bat я використовую

SET var6=%1vcvarsx86_amd64.bat
CALL %var6%

Але я отримую: 'C:\Programvcvarsx86_amd64.bat' is not internal or external command.....помилка.

Якщо шлях, призначений для var5, не має місця, то це добре.

Я спробував кілька комбінацій цитат і %1vcvarsx86_amd64.bat, але ніяких змін.

Як зробити так, щоб він працював із контуром із пробілами?


Якщо точніше, припустимо, це 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

Оновлення: Ось приклад. Зміна ab на ab працює.

call.bat в C: \

@ECHO OFF

SET var5=C:\a b\
CALL C:\1.bat "%var5%"

pause

1.bat в C: \

@ECHO OFF

SET var6=%~1Test.bat
CALL %var6%

RMDIR /S C:\NoWorry

Test.bat в C: \ ab Test.bat в C: \ ab

@ECHO OFF

RMDIR /S C:\ThereIsNoSuchFolder

Чи намагалися ви уникнути одинарних пробілів з косою рисою ( bla\ blub) або вклавши весь шлях у лапки ( "bla blub")?
таксіла

Відповіді:


8

Для передачі параметрів з пробілами вам потрібно навести параметр, тоді ви можете видалити лапки за допомогою %~1.

Так виглядав би повний сценарій

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%

Це дає мені1> There should not be Files。
user565739

Для мене це добре працює, мені не вистачало setвідповіді, спробуйте зараз.
Bali C

Використання "% var5" просто видає помилки типу There should not be..... Я не знаю чому.
користувач565739

Я маю на увазі використання цитати з% (ім'я змінної) просто дає мені помилку, і вона не може викликати vc64.bat. Без лапок він може викликати vc64.bat, але параметр не є хорошим.
користувач565739

Використовувати потрібно "%var5%"зі %знаком з кожного боку.
Bali C
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.