批处理脚本 |命令运行时闪烁屏幕
Posted
技术标签:
【中文标题】批处理脚本 |命令运行时闪烁屏幕【英文标题】:Batch Script | Flash the screen while a command is running 【发布时间】:2021-12-21 20:55:41 【问题描述】:我创建了一个批处理脚本来调用 VLC 进行记录。在 VLC 录制时,我希望命令提示屏幕闪烁红色和黑色背景,作为录制正在进行的视觉指示。
这是我运行 VLC 的字符串:
vlc screen:// --qt-start-minimized :screen-fps=30 :run-time=300 :quiet :sout=#transcodevcodec=h264,vb072:standardaccess=file,mux=mp4,dst="C:\Users\danbradshaw\Desktop\screencast.mp4" vlc://quit
这就是我如何让背景循环颜色:
:S
color 40
color 04
goto S
由于 VLC 字符串会停止运行器,直到 VLC 退出,我无法在之后放置颜色循环代码。但由于颜色循环代码是一个循环,它会阻止 VLC 字符串在之前执行。
我应该怎么做才能让它们一起运行?
【问题讨论】:
您可以使用START
异步启动事物。但是两个进程无法知道另一个进程何时完成,除非您想使用复杂的文件丢弃信号量进程
重读你想要的,可能就像使用START vlc....
而不是vlc....
一样简单
@Nick.McDermaid 谢谢,这对我有用!
如果您可以在答案中记录您的解决方案并接受它,那就太好了。没有什么比搜索您的问题,找到它,然后看到“我得到它的工作”而没有任何解释更令人沮丧的了。
我建议您将问题标题更改为:“在命令运行时闪烁屏幕”。它更能描述您的特定要求。
【参考方案1】:
我根据上面的建议得到了这个。这是我的最终批处理脚本:
@echo off
:start
cls
cd /d C:\Program Files\VideoLAN\VLC
start vlc screen:// --qt-start-minimized :screen-fps=30 :run-time=300 :quiet :sout=#transcodevcodec=h264,vb072:standardaccess=file,mux=mp4,dst="C:\Users\danbradshaw\Desktop\screencast.mp4" vlc://quit
:S
color 40
timeout 1 >nul
color 04
timeout 1 >nul
goto S
感谢您的回复。
【讨论】:
嗯...这个“解决方案”是一个无限循环...如何停止屏幕闪烁?当您直观地意识到vlc
命令结束然后按Ctrl-C 以中止循环时?
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。
@Aacini,我点击命令提示符窗口右上角的x(:VLC命令也是一样,我手动停止VLC录制。自动化主要是为了启动录制,因为它省去了我手动配置捕获详细信息的时间。
好吧,如果您手动停止录制并手动停止闪烁的屏幕,那么我不明白您为什么需要“录制正在进行的视觉指示器".无论如何,my answer below自动在录制结束时停止闪烁的屏幕,所以我认为这是一个更好的解决方案... :(
我忘记屏幕录制有时正在运行。华丽的屏幕是一个很好的提醒,而且它看起来比黑色的 cmd 窗口更酷。我试过你的方法,但它不能正常工作,我没有解决它,因为其他方法已经对我有用,我很满意。【参考方案2】:
这行得通:
@echo off
if "%1" neq "" goto %1
echo Start process
"%~F0" emitter > pipefile.txt | "%~F0" receiver < pipefile.txt
color
echo End process
goto :EOF
:emitter
ping -n 10 -w 500 localhost > CON
echo EOT
exit /B
:receiver
color 40
ping -n 1 localhost > NUL
color 04
ping -n 1 localhost > NUL
set /P "end="
if not defined end goto receiver
exit /B
只需将我在测试中使用的ping -n 10 -w 500 localhost > CON
命令替换为您的vlc screen:// --qt-start-minimized :screen-fps=30 :run-time=300 :quiet :sout=#transcodevcodec=h264,vb072:standardaccess=file,mux=mp4,dst="C:\Users\danbradshaw\Desktop\screencast.mp4" vlc://quit
【讨论】:
以上是关于批处理脚本 |命令运行时闪烁屏幕的主要内容,如果未能解决你的问题,请参考以下文章
python 作为“批处理”脚本(即从 python 运行命令)