뭔가 작동합니다 :
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; }
번으로 쉽게 전화 할 수 있습니다.
이 기능을 좀 더 강력하게 사용해보십시오. 당신은 공백을 제거 할 수 있습니다 라인은 단일 라인으로 그것을 만들 나누기,하지만 난 그것을 읽기 쉽게 포맷 게시합니다 :
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