如何通过脚本实现AnyDesk多连接的自动打开、登录与关闭循环执行?
如何通过脚本实现AnyDesk多连接的自动打开、登录与关闭循环执行?
看起来你遇到的核心问题是AnyDesk启动后会阻塞脚本执行,必须手动关闭才会继续下一行——这很正常,默认情况下AnyDesk会保持进程运行,脚本会等待它退出才会往下走。我给你几个实用的解决方案,帮你实现自动循环连接不同ID的需求:
方案一:利用AnyDesk命令行参数自动退出
AnyDesk支持一些命令行参数来控制会话行为,你可以尝试在启动命令里加上--close-on-disconnect(如果你的版本支持的话),这样当会话断开后,AnyDesk会自动关闭,脚本就能继续执行下一行了。
修改后的单条命令如下:
"C:\Program Files (x86)\AnyDesk\AnyDesk.exe" <你的ID> --with-password <你的密码> --close-on-disconnect
注意:这里我去掉了echo <密码> |的写法,直接用--with-password参数传递密码更可靠,避免管道带来的编码或延迟问题。
如果你的AnyDesk版本没有这个参数,或者参数不生效,那可以试试方案二。
方案二:后台启动+自动杀进程(通用方案)
这个方法不依赖AnyDesk的特定参数,通过Windows的start命令后台启动AnyDesk,等待一段时间(给你留足配置操作的时间),然后强制杀死AnyDesk进程,再进行下一个连接。
基础版脚本(手动写多个连接)
@echo off :: 第一个连接 echo 正在连接到ID1... start "" "C:\Program Files (x86)\AnyDesk\AnyDesk.exe" ID1 --with-password password1 :: 等待30秒(根据你的操作时间调整,比如改成10秒测试) timeout /t 30 /nobreak :: 强制关闭AnyDesk进程 taskkill /im AnyDesk.exe /f :: 短暂等待进程完全退出 timeout /t 2 /nobreak :: 第二个连接 echo 正在连接到ID2... start "" "C:\Program Files (x86)\AnyDesk\AnyDesk.exe" ID2 --with-password password2 timeout /t 30 /nobreak taskkill /im AnyDesk.exe /f timeout /t 2 /nobreak echo 所有连接处理完成!
进阶版:用循环批量处理(适合大量ID)
如果你的ID和密码特别多,手动写每一行太麻烦,可以把它们放在一个文本文件里,用循环自动读取处理:
- 先创建一个
connections.txt文件,每行写一个ID和对应的密码,格式如下:
123456 mypass123 789012 mypass456 345678 mypass789
- 然后写这个批量脚本:
@echo off :: 配置AnyDesk路径和等待时间(秒) set "anydesk_path=C:\Program Files (x86)\AnyDesk\AnyDesk.exe" set "wait_time=30" echo 开始批量处理AnyDesk连接... :: 循环读取connections.txt里的每一行 for /f "tokens=1,2" %%a in (connections.txt) do ( echo -------------------------- echo 正在连接到ID: %%a start "" "%anydesk_path%" %%a --with-password %%b echo 等待 %wait_time% 秒以完成配置... timeout /t %wait_time% /nobreak echo 关闭AnyDesk进程... taskkill /im AnyDesk.exe /f :: 等待进程完全退出,避免冲突 timeout /t 2 /nobreak ) echo -------------------------- echo 所有连接已处理完毕!
注意事项
taskkill /im AnyDesk.exe /f会杀死所有AnyDesk进程,所以运行脚本时请关闭其他正在运行的AnyDesk实例,避免误杀。- 等待时间
wait_time可以根据你的实际操作时长调整,测试时可以设短一点(比如5秒),确认脚本正常执行后再改回需要的时间。 - 如果你的AnyDesk安装路径不同,记得修改
anydesk_path变量里的路径。
备注:内容来源于stack exchange,提问作者Dany




