使用WinSendKeys在批处理文件中自动执行的问题

时间:2015-04-07 00:38:36

标签: batch-file

我正在使用WinSendKeys程序(http://ath.dcmembers.com/wb/pages/software/winsendkeys.php)尝试自动录制连接摄像机的视频。

这是我的设置:

我正在使用带有FireWire连接的便携式摄像机的Windows Vista计算机。我使用Sony PlayMemories的PMBTapeImporter.exe(又名。"从磁带导入")程序将视频直接从摄像机录制到计算机的硬盘上。我需要每30分钟录制1分钟的视频。

要自动执行此任务,我使用的是WinSendKeys和此批处理文件:

REM Go to directory with the WinSendKeys program
cd \Users\Seibel\Documents\WinSendKeys
REM Start the program
start WinSendKeys.exe
REM Open PMBTapeImporter.exe, then after a 20,000 msec pause tab 5 times
WinSendKeys -x "C:\Program Files\Sony\PlayMemories Home\TapeImporter\PMBTapeImporter.exe" -xd 20000 -w PMBTapeImporter.exe {TAB}{TAB}{TAB}{TAB}{TAB}
REM Click the mouse 100 pixels down the "Import from Tape" window and 10 pixels inward (this is along the menu bar to bring this window to the front)
WinSendKeys -m "Import from Tape" #%,100,10
REM Click the space bar to select the highlighted "Import" button
WinSendKeys -w PMBTapeImporter.exe {SPACE}
FOR /L %%A IN (1,1,5) DO (
    REM wait 10 seconds
    timeout 10 /nobreak
    WinSendKeys -m "Import from Tape" #%,100,10
    REM select the button again to stop recording
    WinSendKeys -w PMBTapeImporter.exe {SPACE}
    REM wait 20 seconds
    timeout 20 /nobreak
    WinSendKeys -m "Import from Tape" #%,100,10
    REM select the button to begin recording again
    WinSendKeys -w PMBTapeImporter.exe {SPACE}
)

目前我只是每隔20秒录制一段10秒钟的视频,直到我解决了我的问题。

我的问题是for循环中的第一个WinSendKeys -w PMBTapeImporter.exe {SPACE}命令永远不会起作用,我无法弄清楚原因。在20秒暂停后的第二个WinSendKeys -w PMBTapeImporter.exe {SPACE}总是有效但从不是第一个。我做错了什么?

附件是此批处理文件运行时指向计算机视频的链接。

https://www.dropbox.com/s/6sktsljp7un3bw4/issue.tvs?dl=0

1 个答案:

答案 0 :(得分:1)

Escaping Percents%字符对命令行参数和FOR参数具有特殊含义。要将百分比视为批处理文件中的常规字符,请将其加倍:%%

WinSendKeys -m "Import from Tape" #%%,100,10