【问题标题】:How can I write to Netcat output in Powershell without a new line being appended to the end?如何在 Powershell 中写入 Netcat 输出而不在末尾附加新行?
【发布时间】:2016-11-11 20:12:56
【问题描述】:

我正在尝试使用 Powershell 中的 Write-Output 命令向 Netcat 写入一行,但如果不发送新行,我似乎无法执行此操作。到目前为止,我已经尝试过......

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

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

... 但是,两者都会导致新行与“命令”一起发送。有人可以帮我找到类似于 Linux 中的 Write-Host -NoNewLine 或 Echo -n 的解决方案吗?

【问题讨论】:

    标签: powershell output newline netcat


    【解决方案1】:

    取自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()
    

    【讨论】:

    • 感谢您的回复!不幸的是,我尝试了这个,但仍然看到一条新线路被发送。我的第二个“命令”实际上是一个“GET”,它显示了我之前命令的输出,其中不正确的命令将返回之前输入的不正确命令。在我的例子中,这是一个附加了新行的命令。
    • @user7147773 在另一个窗口中打开ncat -l -k localhost 9990 作为侦听器,然后运行此代码,您会看到没有发送换行符,commands 都出现在同一行。如果你再次运行它,下一个命令也会出现在同一行。
    猜你喜欢
    • 2021-05-05
    • 2023-03-18
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 2019-01-25
    • 2016-09-21
    • 2021-12-06
    相关资源
    最近更新 更多