Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 通过Powershell动态重命名命令提示窗口标题_Windows_Powershell_Cmd - Fatal编程技术网

Windows 通过Powershell动态重命名命令提示窗口标题

Windows 通过Powershell动态重命名命令提示窗口标题,windows,powershell,cmd,Windows,Powershell,Cmd,我有一个启动ffmpeg命令的powershell脚本 $process = Start-Process -FilePath "cmd" -ArgumentList "/c c:\bin\ffmpeg\bin\ffmpeg.exe -rtsp_transport tcp -i........ 这将生成一个命令提示窗口。 我希望重命名命令提示符窗口的标题,并且能够在每次运行ffmpeg命令时都这样做 我已经了解了如何通过命令提示符直接重命名窗口标题,以及如何重命名p

我有一个启动ffmpeg命令的powershell脚本

$process = Start-Process -FilePath "cmd" -ArgumentList "/c c:\bin\ffmpeg\bin\ffmpeg.exe -rtsp_transport tcp -i........
这将生成一个命令提示窗口。 我希望重命名命令提示符窗口的标题,并且能够在每次运行ffmpeg命令时都这样做

我已经了解了如何通过命令提示符直接重命名窗口标题,以及如何重命名powershell窗口标题。 我找不到有关powershell在创建时能够动态为命令提示符窗口分配新标题的任何信息

如有任何帮助/建议,将不胜感激。

像这样的吗?


类似这样的情况?

一旦您将代码传递给启动的cmd实例,则由运行过程更新其标题窗口(无需进入pinvoke/Windows API调用)。如果ffmpeg.exe在运行时为您提供当前文件,则只需使用该文件设置标题即可。如果没有,那么您很可能需要调整命令,首先获取文件列表,然后迭代这些文件,设置标题并运行ffmpeg命令。下面是一个让命令设置标题的小示例

Start-Process -FilePath "cmd" -ArgumentList "/c for /l %a in (1,1,10) do (title %a & cls & timeout 3)"
如果您每次启动流程时都要引用,那么只需在其他命令之前设置标题即可

Start-Process -FilePath "cmd" -ArgumentList "/c title ffmpeg command running & c:\bin\ffmpeg\bin\ffmpeg.exe -rtsp_transport tcp -i........"
&字符指示CMD运行第一个命令和下一个命令。&&说运行第一个命令,如果第一个命令成功,则只运行第二个命令表示运行第一个命令,如果失败,则运行第二个命令


顺便说一下,除非您在
启动进程
上使用
-Passthru
,否则它不会收集任何东西。通过passthru参数,它将收集System.Diagnostics.Process对象。这可用于跟踪、关闭等。

一旦您将代码传递给启动的cmd实例,则将由运行过程更新其标题窗口(无需进入pinvoke/Windows API调用)。如果ffmpeg.exe在运行时为您提供当前文件,则只需使用该文件设置标题即可。如果没有,那么您很可能需要调整命令,首先获取文件列表,然后迭代这些文件,设置标题并运行ffmpeg命令。下面是一个让命令设置标题的小示例

Start-Process -FilePath "cmd" -ArgumentList "/c for /l %a in (1,1,10) do (title %a & cls & timeout 3)"
如果您每次启动流程时都要引用,那么只需在其他命令之前设置标题即可

Start-Process -FilePath "cmd" -ArgumentList "/c title ffmpeg command running & c:\bin\ffmpeg\bin\ffmpeg.exe -rtsp_transport tcp -i........"
&字符指示CMD运行第一个命令和下一个命令。&&说运行第一个命令,如果第一个命令成功,则只运行第二个命令表示运行第一个命令,如果失败,则运行第二个命令


顺便说一下,除非您在
启动进程
上使用
-Passthru
,否则它不会收集任何东西。通过passthru参数,它将收集System.Diagnostics.Process对象。这可以用于跟踪、关闭等。你说的是创建时,但不是说创建后?你说的是创建时,但你不是说在它被创建之后吗?不,他说他想更改运行ffmpeg命令的CMD窗口标题不,他说他想更改运行ffmpeg命令的CMD窗口标题你提供的第二个选项正是我的情况所需要的。非常感谢。你提出的第二个选择正是我的情况所需要的。非常感谢。