2012-07-11 3 views
2

Powershell에서 문자열을 큰 따옴표로 묶어야하는시기는 언제입니까? 아래에이 모든 것이 필요합니까?PowerShell에서 언제 견적을 사용해야합니까?

& "$sendemail" -f "$sender" -t "$recipient" -u "$subject" -o message-file="$logpath" -s "$emailserver" -o tls=no 
+1

여기 규칙을 인용 : http://technet.microsoft.com/en-us/library/dd315325.aspx – nimizen

답변

4

이 경우 아무 것도 필요하지 않습니다. 전화 연산자 &이 작업을 할 수 있도록

  • $sendemail는 (아마도 다른 어떤 어쨌든 문자열로 강요받을 것이다) 이미 희망 문자열입니다.
  • 다른 모든 변수는 물론 제대로 인용 전달한다 : 당신은 특수 문자 (예 : 쉘 사업자 또는 공백)를 포함 리터럴 문자열을 전달하려면

    PS> $subject = 'subject string' 
    PS> $recipient = 'recipient string' 
    PS> $logpath = 'log path' 
    PS> $emailserver = 'email server' 
    PS> $recipient = 'recipient''s name' 
    PS> $sender = 'sender''s name' 
    PS> $sendemail = './echoargs.exe' 
    PS> & $sendemail -f $sender -t $recipient -u $subject -o message-file=$logpath -s $emailserver -o tls=no 
    arg 1: -f 
    arg 2: sender's name 
    arg 3: -t 
    arg 4: recipient's name 
    arg 5: -u 
    arg 6: subject string 
    arg 7: -o 
    arg 8: message-file=log path 
    arg 9: -s 
    arg 10: email server 
    arg 11: -o 
    arg 12: tls=no 
    

당신은 따옴표를 필요 프로그램, 예를 들면 :

./echoargs 'some spaces and a | pipe' 

모든 인수가 같은 것을 포함하지 않거나 이미 스스로 당신이 따옴표없이 좋은있어 문자열 변수에 포함 된 하나합니다.

2

모든 질문에 대한 대답은 전체 질문에 대한 대답의 단편을 제공합니다. "언제 PowerShell에서 따옴표가 필요합니까 (필요한 경우 어떤 종류를 사용합니까)?" 비록 자연스럽게 MSDN 페이지 about_quoting_rules이 완전한 대답을 가지고 있다고 생각 하겠지만, 그렇지 않습니다. 대체로 문자열 보간과 문자열을 다루지 만 실제로는 따옴표가 필요한지 여부에 관계없이 이 아닌 주소를 사용합니다.

PowerShell은 스크립팅 언어와 셸 언어가되는 유연성을 제공하므로 대답이 다른 언어보다 PowerShell에서 조금 복잡합니다. PowerShell은 셸 언어에서 예상하는 것처럼 셸의 입력 작업을 최소화하도록 설계되었지만 동시에 PowerShell 스크립트와 완벽하게 상호 운용 될 수 있도록 설계되었습니다.

실제로 여기에 게시하는 데 대한 자세한 답변을 작성하기 시작했지만 Simple-Talk에 게시 된 기사 길이의 스토리와 팝 아웃 wallchart (아래 표시된 조각)로 변형 될 때까지 커지고 자랐습니다. com. When to Quote in PowerShell을 참조하십시오.

enter image description here

관련 문제