나는 따옴표에 문제가있다, 나는 이것을 몇 시간 동안 해왔다. 나는 기본적으로 외부 프로그램 (FOO)을 가지고 있으며, 처리 할 문자열이 필요하며, 그 문자열 내에 마지막과 마지막에 인용문이있다. .
FOO /f "BAR ^"BAZ^""
이 코드는 'BAZ'가 포함 된 따옴표를 이스케이프 처리 할 때 첫 번째 따옴표가 캐럿으로 이스케이프 처리 된 경우에도 서로 옆에있는 두 따옴표가 이스케이프 처리되므로 마지막 따옴표를 이스케이프 처리하기 때문에 작동하지 않습니다.
나는 그것이 Windows Batch를 엄격하게 사용하기를 원하기 때문에 sed와 같은 것을 사용하고 싶지 않다.
( 편집하다: 내 문제를 재현하는 명령은 다음과 같습니다.
REG ADD HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /t REG_SZ /v Update /d "cmd.exe /c ""echo CreateObject(""Wscript.Shell"").Run """""""" ^& WScript.Arguments(0) ^& """""""", 0, False > invis.vbs && CALL invis.vbs update.bat""" /f
)
여기에 설명 된대로 여러 개의 큰 따옴표를 사용하십시오. stackoverflow.com/questions/7760545/...
—
Axel Kemper
@AxelKemper 불행히도 나는 그것을 사용할 때 작동시키지 못한다.
—
Linus
REG ADD <KEYNAME> /t REG_SZ /v FOO /d "BAR ""BAZ""" /f
. 그것은 잘못된 구문을 말합니다.
2 단계 접근법을 시도해 보셨습니까? 먼저 cmd.exe ...의 출력을 env 변수 foo에 쓰고 두 번째는 reg 명령에서 % foo %를 사용하여 출력합니까?
—
DavidPostill
@DavidPostill 당신은 무엇을 의미합니까?
—
Linus
긴 명령을 두 개의 명령으로 나눈다는 뜻입니다.
—
DavidPostill