何かが働くだろう:
while ((New-Object System.Net.Sockets.TcpClient -ArgumentList DESTINATION-IP,PORT).Connected -ne $true) { Start-Sleep -Milliseconds 1000 }
をあなたが実際に接続洪水にしない限り、私は〜250ミリ秒かそこら未満の睡眠をお勧めしません。
また、スクリプトファイルを使用せずにスクリプトを呼び出すためにワンライナーを作成する必要はありません。 Powershellには、終端記号の末尾に;
があります。 powershell -Command { 1; 2; 3; }
に簡単に電話することができます。
これはもう少し頑強にしてください。空白と改行を削除して1行にすることはできますが、読みやすくするために書式設定して投稿します:
do {
try {
$Connected = (New-Object System.Net.Sockets.TcpClient -ArgumentList DESTINATION-IP,PORT -ErrorAction Stop).Connected;
}
catch {
$Connected = $false;
}
if (!$Connected) { Start-Sleep -Milliseconds 1000; }
} until ($true.Equals($Connected));
なぜ[nmap](https://nmap.org/)を使用しないのですか?それはちょうどそれを(そしてもっと)行うように設計されています。 – vonPryz
while($ true) '?パワーサルの基本を学ぶだけでどうですか?楽しいこと:最も一般的なスクリプト言語と同じです。 – Clijsters
while((New-Object System.Net.Sockets.TcpClient -ArgumentList DESTINATION-IP、PORT).Connected){} – EBGreen