Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 搜索并杀死PID,一次一个_Batch File_Taskkill - Fatal编程技术网

Batch file 搜索并杀死PID,一次一个

Batch file 搜索并杀死PID,一次一个,batch-file,taskkill,Batch File,Taskkill,我有以下命令,它运行得很好: FOR /F "tokens=5 delims= " %%P IN ('netstat -a -n -o ^| grep :7010') DO TaskKill.exe /PID %%P /F 问题是,如果多次找到具有相同PID的相同端口,我的脚本将返回errno 1,因为在第一次尝试后终止PID的尝试失败 是否有办法修改上述内容,使其仅尝试关闭PID一次?这可能适用于您: @ECHO OFF &SETLOCAL disableDelayedExpansi

我有以下命令,它运行得很好:

FOR /F "tokens=5 delims= " %%P IN ('netstat -a -n -o ^| grep :7010') DO TaskKill.exe /PID %%P /F
问题是,如果多次找到具有相同PID的相同端口,我的脚本将返回
errno 1
,因为在第一次尝试后终止PID的尝试失败


是否有办法修改上述内容,使其仅尝试关闭PID一次?

这可能适用于您:

@ECHO OFF &SETLOCAL disableDelayedExpansion
FOR /F "tokens=5 delims= " %%P IN ('netstat -a -n -o ^| grep :7010') DO (
    IF NOT DEFINED PID.%%P (
        TASKKILL.exe /PID %%P /F
        SET "PID.%%P=7"
    )
)

这非常有效-您是否任意将PID.P设置为7?另外,你能详细说明一下禁用延迟扩展的必要性吗?
7
是神奇的批号;但是您可以替换它:)
disableDelayedExpansion
:您可以在注册表或命令行中设置延迟扩展状态。我总是使用它来获得定义的启动环境。在这种情况下没有必要这样做。