Board logo

标题: [文本处理] 如何用批处理获取剪贴板内容,进行文本替换后再次按命令运行? [打印本页]

作者: asf54a65s4f54    时间: 2022-2-27 20:30     标题: 如何用批处理获取剪贴板内容,进行文本替换后再次按命令运行?

比如我剪贴板复制了一个链接:rtmp://pull.xxxxxxxxxxx.com/live<playpath>_a12ecdb6cfw2Dd9UxqT0g
先把链接中的“<playpath>”替换为斜杠“/”
然后把结果插入到以下命令中:
ffmpeg -i "刚才处理的链接" -c copy "E:\123.ts

这时应该得到命令:
ffmpeg -i "rtmp://pull.xxxxxxxxxxx.com/live/_a12ecdb6cfw2Dd9UxqT0g" -c copy "E:\123.ts

最后再用批处理运行一次最后得到的命令,如何实现?
作者: went    时间: 2022-2-27 21:10

test.bat
  1. #&cls&@powershell -Sta -c "Get-Content '%~0' | Out-String | Invoke-Expression" &pause&exit
  2. [void][System.Reflection.Assembly]::LoadWithPartialName('PresentationCore')
  3. if([System.Windows.Clipboard]::ContainsText()){
  4.     $url = [System.Windows.Clipboard]::GetText().Trim() -replace '<playpath>','/'
  5.     'ffmpeg -i "{0}" -c copy "E:\123.ts"' -f $url | Invoke-Expression
  6. }
复制代码

作者: asf54a65s4f54    时间: 2022-2-27 21:55

回复 2# went


    真是迅速啊太感谢了,还有一点想改进一下就是最后的E:\123.ts,能不能把123.ts弄成按现在的日期时间作为文件名呢?
比如像2022-02-27_21-00-00.ts
这样就能避免同名文件覆盖的问题了
作者: went    时间: 2022-2-27 22:02

  1. 'ffmpeg -i "{0}" -c copy "E:\{1}.ts"' -f $url,[datetime]::Now.ToString("yyyy-MM-dd_hh-mm-ss") | Invoke-Expression
复制代码
回复 3# asf54a65s4f54
作者: asf54a65s4f54    时间: 2022-2-27 22:19

回复 4# went


    完美,谢谢大神




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2