Это недопустимая строка JSON, потому что вы не экранируете двойные кавычки на уровне JSON, только на уровне языка. После удаления первого уровня управляющих кодов ваша строка JSON будет выглядеть следующим образом:
"I said, "Hello""
Двойная кавычка перед «Hello» заканчивает строку, поэтому сообщение об ошибке говорит:
Неожиданный токен H в JSON в позиции 10
blockquote>Строка JSON, которую вы хотите:
"I said, \"Hello\""
Чтобы создать ее как строковый литерал в Elm, вам нужно " double escape "двойные кавычки, что на практике означает просто добавление экранированной обратной косой черты перед каждой из экранированных двойных кавычек:
Decode.decodeString Decode.string "\"I said, \\\"Hello\\\"\""
Интересный. Я люблю собирать кавычки об обработке кавычек в cmd/command.
Ваши конкретные сценарии фиксируется при помощи %1 вместо "%1"!!!
Путем включения 'эха' (или избавления от эха прочь), Вы, возможно, легко узнали это.
Если у Вас есть путь с пробелами, необходимо окружить его кавычками (").
Не уверенный, если это точно, что Вы спрашиваете хотя?
@echo off
setlocal enableextensions enabledelayedexpansion
if %1=="" (
rem Set default path
set PWA_PATH="C:\Program Files\PWA"
rem
echo You have not specified your PWA url.
echo Default will be assumed: C:\Program Files\PWA.
choice /C:YN /M:"Do you wish to continue [Y] or cancel the script [N]?"
IF ERRORLEVEL ==2 GOTO CANCEL
IF ERRORLEVEL ==1 GOTO READ_WSS_SERVER_EXTENSIONS_PATH
GOTO END
) else (
set PWA_PATH=%1
@echo !PWA_PATH! vs. %1
goto end
)
:READ_WSS_SERVER_EXTENSIONS_PATH
echo ok
goto end
:CANCEL
echo cancelled
:end
echo. final %PWA_PATH% vs. %1
Как [1 110] упоминания VardhanDotNet, %1
достаточно.
"%1%"
добавил бы кавычки вокруг кавычек: ""c:\Program Files\xxx""
, что означает:
""
), ""
) Примечание однако, что, если необходимо использовать PWA_PATH
в Вашем IF
пункт, необходимо относиться если как !PWA_PATH!
(следовательно enabledelayedexpansion
как начало сценария)
Я думаю, что проблема OP заключалась в том, что он хочет сделать ОБА из следующего:
Как упоминалось в нескольких плакатах, чтобы передать параметр, содержащий пробелы, вы должны заключить фактическое значение параметра в двойные кавычки.
Чтобы проверить, отсутствует ли параметр, я всегда узнал следующий метод:
if "%1" == ""
Однако , если фактический параметр заключен в кавычки (как и должно быть, если значение содержит пробелы), это становится
if ""actual parameter value"" == ""
, что вызывает «непредвиденную» ошибку. Если вы вместо этого используете
if %1 == ""
, ошибка больше не возникает для значений в кавычках. Но в этом случае тест больше не работает , когда значение отсутствует - оно становится
if == ""
. Чтобы исправить это, используйте любые другие символы (кроме тех, которые имеют особое значение для DOS) вместо кавычек в тесте:
if [%1] == []
if .%1. == ..
if abc%1xyz == abcxyz