아래 항목을 PowerShell의 cmd 줄에 전달하고 싶습니다. 무엇을해야합니까?powershell에서 이러한 문자를 이스케이프하는 방법 [], "", |
["192.168.10.1|443|Atulkatiyar|passw$h"]
어떻게 PowerShell 명령으로 작성하고 명령 줄에서 실행할 수 있습니까?
아래 항목을 PowerShell의 cmd 줄에 전달하고 싶습니다. 무엇을해야합니까?powershell에서 이러한 문자를 이스케이프하는 방법 [], "", |
["192.168.10.1|443|Atulkatiyar|passw$h"]
어떻게 PowerShell 명령으로 작성하고 명령 줄에서 실행할 수 있습니까?
cmd --% /c ["192.168.10.1|443|Atulkatiyar|passw$h"]
--%
은 "cmd를 라인에 전달"이
도움이되지 않았 음 –
글쎄, 당신이 달성하고자하는 것이 확실하지 않습니다.'^'는 cmd의 이스케이프 문자로 업데이트 된 답변을 확인합니다. – 4c74356b41
매개 변수는'- %'이며 [PowerShell v3 이전에는 사용할 수 없습니다.] (https://blogs.msdn.microsoft.com/powershell/2012/06/13/new-v3-language-features/) . –
cmd.exe /C "echo `[`"192.168.10.1`|443`|Atulkatiyar`|passw`$h`"`]"
아무 것도 도움 안됨 아래는 cmd 프롬프트에서 실행할 내 전원 쉘 스크립트입니다 : $ avconfig = "'['192.168.1.21' | 443' | atulkatiyar Horizon \ Broker Agent \ bin \ v4v_brokeragentcfg.exe에 대한 작업을 알립니다. "| passw' $ h'"'] " 쓰기 호스트"avconfig : "$ avconfig $ configCmd =" "" "c : \ Program Files \ VMware \ "/"avcfg $ avconfig " 쓰기 - 호스트"자동 구성 명령 : cmd/c $ configCmd " Invoke-VMScript -VM $ vm -ScriptText"cmd 시작/c $ configCmd "-ScriptType Bat -GuestUser $ UID -GuestPassword $ PASSWD -Server $ viserver -Confirm : $ false $ VM, $ UID, $ PASSWD, $ viserver가 올바르게 제공되었다고 가정합니다. –
cmd 창에서 동일한 명령을 수동으로 실행하면 "c : \ Program Files \ VMware \ v Horizon \ Broker Agent \ bin \ v4v_bro에 대한 작업 알리기 keragentcfg.exe "+"/ avcfg [ "192.168.1.21 | 443 | atulkatiyar'passw $ h"] "나는 모든 옵션을 열심히 시도하고 모든 특별한 헌장을 피했습니다. 우리는 cmd 프롬프트에서 제공해야하지만 실행되지는 않습니다. –
그것은 당신이 무슨 뜻인지 불분명 수정되지 않은 실행 파일에 전달되는 모든 후, 이스케이프 시퀀스입니다.
PowerShell을의 관점에서, 당신이 당신의 문제의 문자열이 단순히 '...'
로 묶어야하는 문자로 처리하려는 경우 (작은 따옴표,있는 경우, 포함 작은 따옴표로 묶어야, ''
로) :
> '["192.168.10.1|443|Atulkatiyar|passw$h"]'
["192.168.10.1|443|Atulkatiyar|passw$h"]
당신이 cmd.exe
에 표준 명령 프로세서를이 문자를 통과하려면 , 같은이 적용
> cmd /c echo '["192.168.10.1|443|Atulkatiyar|passw$h"]'
["192.168.10.1|443|Atulkatiyar|passw$h"]
즉, 문자열에 $h
이 포함되어 있습니다.이 문자열은 PowerShell 변수에 대한 참조처럼 보입니다. 먼저 해당 참조를 확장 (보간)하려면 다른 방법이 필요합니다.
> $h = 'Hi!'
> ('["192.168.10.1|443|Atulkatiyar|passw' + $h + '"]')
["192.168.10.1|443|Atulkatiyar|passwHi!"]
> cmd /c echo ('["192.168.10.1|443|Atulkatiyar|passw' + $h + '"]')
["192.168.10.1|443|Atulkatiyar|passwHi!"]
또한, 일반적으로, 당신은 변수 참조 ($<varName>
)되어야 표현식 ($(...)
)를 포함 할 더블 -quoted 문자열을 사용할 수 있습니다 : 다음 명령에서, 이항 연산자 +
와 문자열 연결이 사용됩니다 는을 확대 (보간 : 자신의 값으로 대체) - (필요한 경우, 그리고 $
자) 해당 이벤트에 포함 된 "
을 탈출 `
(역음)를 사용 :
> "[`"192.168.10.1|443|Atulkatiyar|passw$h`"]"
["192.168.10.1|443|Atulkatiyar|passwHi!"]
> cmd /c echo "[`"192.168.10.1|443|Atulkatiyar|passw$h`"]"
["192.168.10.1|443|Atulkatiyar|passwHi!"]
다른 옵션 :
은 는{0}
(첫 번째 피연산자)로 LHS가 자리를 포함 문자열 형식에 대한 이진
-f
연산자를 사용할 수 있습니다
String.Format
method은에 -)도 here를 참조하십시오> ('["192.168.10.1|443|Atulkatiyar|passw{0}"]' -f $h)
["192.168.10.1|443|Atulkatiyar|passwHi!"]
> cmd /c echo ('["192.168.10.1|443|Atulkatiyar|passw{0}"]' -f $h)
["192.168.10.1|443|Atulkatiyar|passwHi!"]
--%
"중지 - 구문 분석"스위치를 사용하면 cmd.exe
을 통해 나머지 매개 변수를 전달할 수 등 %PATH%
같은 cmd.exe
스타일의 환경 변수 참조에 대한 제외, 있는 그대로; 이는 PowerShell 변수 참조 및 하위 표현식이 이 아니고이 확장되었음을 의미합니다.
문제의 문자열이 자체적으로 실행될 수 없으므로 (명령을 사용하여) 얼마나 정확하게 실행 하시겠습니까? –