批处理脚本 |命令运行时闪烁屏幕

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 &gt; 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 运行命令)

python 作为“批处理”脚本(即从 python 运行命令)

几个代码提升shell逼格

运行节点 bin 脚本时确定命令行工作目录

在 Windows 关机时执行批处理脚本

bat脚本内容学习