2016-11-11 7 views
0

Powershell에서 Write-Output 명령을 사용하여 Netcat에 줄을 쓰려고하는데 새 줄을 보내지 않으면이 작업을 수행 할 수 없습니다. 지금까지 나는 그러나 모두가 새로운 라인 "명령"과 함께 전송 될 수 ... ...Powershell의 Netcat 출력에 끝에 새로운 행을 추가하지 않고 어떻게 쓸 수 있습니까?

Write-Output "command" | nc -w1 aa.bb.cc.dd xxxx 

"command" | nc -w1 aa.bb.cc.dd xxxx 

을 시도했습니다. Linux에서 Write-HostNoNewLine 또는 Echo -n과 유사한 솔루션을 찾도록 도와 줄 수 있습니까?

답변

0

Can I send some text to the STDIN of an active process under Windows?

로부터의 응답을
$psi = New-Object System.Diagnostics.ProcessStartInfo; 

$psi.FileName = "ncat.exe" 
$psi.UseShellExecute = $false 
$psi.RedirectStandardInput = $true 

$psi.Arguments = 'localhost','9990' #ncat connection args 
$psi.CreateNoWindow = $true 

$p = [System.Diagnostics.Process]::Start($psi) 

Start-Sleep -s 2 

$p.StandardInput.Write("command") #StandardInput is a StreamWriter 
$p.StandardInput.Write("command") 
$p.Close() 
+0

감사를 촬영! 불행히도 나는 이것을 시험해 보았고 새 줄을 보냈다. 내 두 번째 "명령"은 실제로 이전 명령의 잘못된 결과가 이전에 입력 된 잘못된 명령을 반환하는 이전 명령의 출력을 나타내는 "GET"입니다. 필자의 경우이 명령은 새로운 줄이 추가 된 명령입니다. – user7147773

+0

@ user7147773'ncat -l -k localhost 9990'을 다른 윈도우에서 청취자로 열고이 코드를 실행하면 줄 바꿈이 표시되지 않으며 두 명령 모두 같은 줄에 나타납니다. 그리고 다시 실행하면 다음 명령이 같은 행에 나타납니다. – TessellatingHeckler