如何让Batch批处理按指定顺序一次性打开多个文件夹
批处理按预设顺序打开多文件夹解决方案
问题原因
当前代码使用的start命令为异步执行逻辑,不会等待前一个资源管理器窗口加载完成就会立刻执行下一行启动命令,窗口最终显示顺序由系统调度、磁盘读写速度、当前系统负载等因素决定,因此会出现和书写顺序不一致的情况。
解决方案1:批处理添加启动间隔(改造成本最低)
在每两条start命令之间添加毫秒级等待时间,保证前一个窗口完全加载渲染完成后再启动下一个即可。推荐用ping命令实现无多余输出的等待,修改后的代码如下:
@echo off start /max explorer "D:\Music1" ping -n 1 -w 300 127.0.0.1 >nul start /max explorer "E:\Music2 - EDIT" ping -n 1 -w 300 127.0.0.1 >nul start /max explorer "H:\Music3" ping -n 1 -w 300 127.0.0.1 >nul start /max explorer "H:\Music4 - EDIT"
参数说明:
-w 300代表等待300毫秒,如果运行后还是出现顺序错乱,可把数值调高到500或者1000适配你的电脑性能>nul作用是屏蔽ping命令的运行输出,不会在批处理运行窗口显示多余内容
解决方案2:PowerShell脚本实现(更稳定)
如果不想手动调整延迟数值,可以直接使用PowerShell脚本实现顺序启动,自带更精准的等待控制:
Start-Process explorer "D:\Music1" -WindowStyle Maximized Start-Sleep -Milliseconds 200 Start-Process explorer "E:\Music2 - EDIT" -WindowStyle Maximized Start-Sleep -Milliseconds 200 Start-Process explorer "H:\Music3" -WindowStyle Maximized Start-Sleep -Milliseconds 200 Start-Process explorer "H:\Music4 - EDIT" -WindowStyle Maximized

内容的提问来源于stack exchange,提问作者Fifi2000
相关产品推荐
相关产品推荐

