在cmd中为变量分配窗口句柄,以脚本在窗口中移动窗口

时间:2019-05-02 13:26:05

标签: windows batch-file cmd vlc

我正在使用VLC的克隆功能,使用相同的控件在扩展的显示器上显示相同的视频。这些窗口是无边界的,因此我无法使用鼠标来移动它们。默认情况下,VLC在彼此顶部的主显示屏上打开它们。

我想编写一个脚本,将这些窗口移动到不同的坐标。

我尝试使用cmdow.exe移动打开的窗口。但是,我需要单独解决它们。唯一的区别是它们的句柄。我的输出看起来像这样:

C:\cmdow.exe "VLC (Direct3D9 output)"
Handle  Lev  Pid -Window status- Image   Caption
0x1E084A 1 17740 Res Ina Ena Vis vlc     VLC (Direct3D9 output)
0x170762 1 17740 Res Ina Ena Vis vlc     VLC (Direct3D9 output)

当然,每次重新打开VLC时,Handle值都会改变。

如何将这些值分配给脚本中的变量?

1 个答案:

答案 0 :(得分:0)

看到想要设置变量(不需要)时,您永远都不知道返回的行数,因此我们可以创建一个带有值的变量数组:

@echo off
setlocal enabledelayedexpansion
set cnt=0
for /f "skip=1" %%i in ('cmdow.exe "VLC (Direct3D9 output)"') do (
   set /a cnt+=1
   set handle!cnt!=%%i
)
for /l %%a in (1,1,%cnt%) do echo !handle%%a!

for /l循环将简单地允许您使用每个变量集,无论是1还是1000