동적 scriptblock을 만들려고하므로 scriptblock에서 변수를 사용할 수 있습니다. 내가 기대하는 생산하고 무엇 PowerShell을 ISE에서 스크립트를 실행Powershell ISE에서 scriptblock에 문제가 있습니다. 문자열 표현을 메모장에 붙여 넣으면 예기치 않은 문자가 나타납니다.
$Servers = "server1", "server2"
$Command = "c:\plink -t [email protected]" + $Servers[0] + " -pw 'password'"
$Command = [Scriptblock]::Create($Command)
$Command2 = {c:\plink -t [email protected] -pw 'password'}
$command
$command2
:
이
내 코드입니다c:\plink -t [email protected] -pw 'password'
c:\plink -t [email protected] -pw 'password'
$ 명령과 모두 $ Command2를 현재 동일한 출력, 둘 다 있습니다 Get-Member -Verbose로 체크하면 유효한 scriptblocks.
제 문제는 첫 번째 줄을 실행하면 연결 오류가 발생하며, $ command2의 동일한 출력이 제대로 작동하고 서버에 연결된다는 것입니다. ,
당신은 JPG에서 볼 수 있듯이 :
이 문제를 조사, 그 문제 메모장에 ISE의 출력 창에 두 개의 생산 라인을 계시 붙여 넣기/그 사본을 발견 '@'기호 바로 다음에 이상한 문자가 추가되어 명령이 실패하게됩니다.
왜 이런 일이 발생하는지 (그리고 어떻게 해결할 수 있는지) 어떤 생각이 들지 않습니까? @ Fredster의 의견을 바탕으로
나는 당신이 의미하는 바를 알고, 추가 된 문자 값 8은 server1 이름 앞에서 ... 도대체 어디에서 왔는지, 롤! 도움을 주셔서 감사합니다. 나는 결코 그것을 발견하지 못했을 것입니다. (ISE! – Fredster
문자 값 8에 전혀 보이지 않으므로 [backspace] (http://www.asciitable.com/)입니다 - 우연히 어떻게합니까? – TessellatingHeckler
나는 전혀 모른다 : 나는 며칠 동안 고생하고있다 ... 붙여 넣기 만하면 나는 이상한 성격을 발견했다 ... – Fredster