我有一個現有的 perl 腳本(我無法修改),它有兩個 STDIN 呼叫。我想從一個 powershell 腳本運行這個 perl 腳本,并將兩個“用戶輸入”提供給它,但使用變數。
對于我嘗試過的單個輸入
'輸入' | perl <檔案路徑>.pl
這正確地使用了“輸入”作為 STDIN 呼叫的第一個值。問題是它只作業一次。
如何通過 powershell 腳本傳遞兩組 STDIN 輸入?
uj5u.com熱心網友回復:
您正在詢問如何在 PowerShell 中為程式的 STDIN 提供兩行。
您可以使用以下任一方法:
"line1", "line2" | perl ...
"line1`nline2`n" | perl ...
演示:
chomp( my $x = <STDIN> );
chomp( my $y = <STDIN> );
print( "<x:$x>\n" );
print( "<y:$y>\n" );
> "line1", "line2" | perl a.pl
<x:line1>
<y:line2>
> "line1`nline2`n" | perl a.pl
<x:line1>
<y:line2>
請注意,PowerShell 5 添加了 BOM。不知道如何防止這種情況。較新版本的 PowerShell 并非如此。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/478970.html
上一篇:從hdfs獲取hive結果太慢,因為maponly任務太多,執行hiveSQL查詢時如何合并查詢結果
下一篇:如何替換用雙引號括起來的值
