Как вызвать пакетный файл из другого пакетного файла с параметрами, которые содержат пробелы? - PullRequest
10 голосов
/ 19 ноября 2010

У меня есть 2 (возможно, в будущем) слоя пакетных файлов, которые облегчают мою жизнь вплоть до момента, когда я пытался добавить пути с пробелами в них.

Пакетный файл 1:

@echo off
set thinga=c:\final build
set thingb=\\server\deployment for final buil

echo.
echo thing a: %thinga%
echo thing b: %thingb%
echo.

call lala.bat "%thinga%" "%thingb%"

Пакетный файл 2 (lala.bat):

@echo off

echo.
echo. Param 1 %1
echo. Param 2 %2
echo.
set BASE=%1
set TARGET=%2
echo. Want to run:
echo.  doSomethingOnBaseFolder %BASE%
echo.  doSomethingOnBaseSubFolder "%BASE%\bin\release\*" "%TARGET%\"
echo.

Вывод этого:

doSomethingOnBaseSubFolder ""c:\final build"\bin\release\*" ""\\server\deployment for final buil"\"

Но я хочу, чтобы результат был

doSomethingOnBaseSubFolder "c:\final build\bin\release\*" "\\server\deployment for final buil\"

Нет ли другого способа покинуть пространство?

1 Ответ

14 голосов
/ 19 ноября 2010

Используйте этот синтаксис:

set VAR="%~1"

% ~ 1 является первым параметром без кавычек, затем заключите его в кавычки для правильной обработки путей с пробелами в них. Как будто ты всегда в безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...