Есть ли способ избежать% при использовании вызова в пакетном файле? - PullRequest
0 голосов
/ 06 мая 2018

Это мой первый пакетный скрипт. Я пытался избежать% char, чтобы он не использовался в качестве переменной. Двойной %% работает при использовании запуска, но когда я использую %% с вызовом, он вводит пустое пространство и функция пропускает параметр.

Есть ли способ избежать% при использовании вызова?

call wp rewrite structure %%postname%% << FAILED
start wp rewrite structure %%postname%% << OK

Мне было просто интересно, почему то же самое выражение с «start» работает так, как ожидалось, а «call» пропускает аргумент. Оба избегали знака процента, используя дополнительный символ%.

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Я предполагаю, что ваша строка "ОК" в порядке, потому что вы хотите литерал %postname%, и вы понимаете, что процентные литералы должны быть экранированы путем удвоения в пакетном файле.

Если вы не удваиваете проценты, то %postname% расширяется до значения переменной окружения postname (или пустой строки, если она не определена).

CALL заставляет проценты оцениваться дважды. Первый раунд процентного расширения конвертирует %%postname%% в %postname%. Это то, что вы хотите. Но затем второй раунд, инициированный CALL, приводит к расширению %postname% до значения переменной.

Решение простое, удвойте проценты во второй раз:

call wp rewrite structure %%%%postname%%%%
0 голосов
/ 06 мая 2018

Вы пробовали

call wp rewrite structure %%%%postname%%%%
...