2

インターネットからバッチファイルを取得しました:

@for /f "tokens=5 delims= " %%i in ('netstat -ano -p tcp ^| find "127.0.0.1"') do Taskkill /F /PID %%i

これは Ultrasurf プロセスを強制終了しますが、私がやりたいのは、この同じプロセスをチェックして、存在する場合はシャットダウンすることです。

私は次のことを試しました:

@for /f "tokens=5 delims= " %%i in ('netstat -ano -p tcp ^| find "127.0.0.1"') do shutdown /s

これにより、プロセスが実行中かどうかにかかわらず、シャットダウン コマンドが発行されます。存在する場合にのみ実行する必要があります。どんな助けでも大歓迎です。

4

1 に答える 1

1

バッチ ファイルは Ultrasurf を強制終了しません。TCP ポートが開いているローカル ホスト上のすべてのプロセスを強制終了します。

リソース モニターを実行すると、多くのサービスが RPC サーバー用の tcp ポートを開いていることがわかります。したがって、変更されたスクリプトは、for コマンドが少なくとも 1 つの一致を検出するため、即時シャットダウンを実行します。

この質問に対する回答の 1 つを変更する

tasklist /FI "IMAGENAME eq ultrasurf.exe" 2>NUL | find /I /N "ultrasurf.exe">NUL
if "%ERRORLEVEL%"=="0" shutdown /s /f

警告: テストされていないコード

于 2013-04-18T18:30:06.630 に答える