Powershell에서 문자열을 큰 따옴표로 묶어야하는시기는 언제입니까? 아래에이 모든 것이 필요합니까?PowerShell에서 언제 견적을 사용해야합니까?
& "$sendemail" -f "$sender" -t "$recipient" -u "$subject" -o message-file="$logpath" -s "$emailserver" -o tls=no
Powershell에서 문자열을 큰 따옴표로 묶어야하는시기는 언제입니까? 아래에이 모든 것이 필요합니까?PowerShell에서 언제 견적을 사용해야합니까?
& "$sendemail" -f "$sender" -t "$recipient" -u "$subject" -o message-file="$logpath" -s "$emailserver" -o tls=no
이 경우 아무 것도 필요하지 않습니다. 전화 연산자 &
이 작업을 할 수 있도록
$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'
모든 인수가 같은 것을 포함하지 않거나 이미 스스로 당신이 따옴표없이 좋은있어 문자열 변수에 포함 된 하나합니다.
an explanation how to use apostrophes and quotes in PoSH입니다. 변수를 확장하거나 연결을 수행하지 않으므로 예제에서는 필요하지 않습니다.
모든 질문에 대한 대답은 전체 질문에 대한 대답의 단편을 제공합니다. "언제 PowerShell에서 따옴표가 필요합니까 (필요한 경우 어떤 종류를 사용합니까)?" 비록 자연스럽게 MSDN 페이지 about_quoting_rules이 완전한 대답을 가지고 있다고 생각 하겠지만, 그렇지 않습니다. 대체로 문자열 보간과 문자열을 다루지 만 실제로는 따옴표가 필요한지 여부에 관계없이 이 아닌 주소를 사용합니다.
PowerShell은 스크립팅 언어와 셸 언어가되는 유연성을 제공하므로 대답이 다른 언어보다 PowerShell에서 조금 복잡합니다. PowerShell은 셸 언어에서 예상하는 것처럼 셸의 입력 작업을 최소화하도록 설계되었지만 동시에 PowerShell 스크립트와 완벽하게 상호 운용 될 수 있도록 설계되었습니다.
실제로 여기에 게시하는 데 대한 자세한 답변을 작성하기 시작했지만 Simple-Talk에 게시 된 기사 길이의 스토리와 팝 아웃 wallchart (아래 표시된 조각)로 변형 될 때까지 커지고 자랐습니다. com. When to Quote in PowerShell을 참조하십시오.
여기 규칙을 인용 : http://technet.microsoft.com/en-us/library/dd315325.aspx – nimizen