Board logo

标题: [文本处理] [已解决]求助批处理获取剪贴板内容,处理后再按命令运行 [打印本页]

作者: asf54a65s4f54    时间: 2022-4-5 13:36     标题: [已解决]求助批处理获取剪贴板内容,处理后再按命令运行

本帖最后由 asf54a65s4f54 于 2022-4-6 12:44 编辑

比如剪贴板复制了一个链接
https://pull-f5.douyincdn.com/stage/stream-687131778444427365_or4.m3u8
先做这几个处理
第一点是把链接中的“pull-f5”替换为“pull-hls-f1”
第二点是把“687131778444427365”提取出来,也就是从第44个字符起,取18个字符
第三点就是要现在的日期时间,格式就像2022-01-01_11-00-00这样的

然后和下面这个命令结合一起:
ffmpeg -i "第一点" -c copy "D:\第二点_第三点.ts

这时应该得到命令:
ffmpeg -i "https://pull-hls-f1.douyincdn.com/stage/stream-687131778444427365_or4.m3u8" -c copy "D:\687131778444427365_2022-01-01_11-00-00.ts
最后运行一次这个命令
作者: Batcher    时间: 2022-4-5 17:42

回复 1# asf54a65s4f54
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('powershell -c "Add-Type -AssemblyName PresentationCore; [Windows.Clipboard]::GetText()"') do (
  4.     set "StrClip=%%i"
  5. )
  6. set "StrPart1=%StrClip:pull-f5=pull-hls-f1%"
  7. set "StrPart2=%StrClip:~43,18%"
  8. for /f "delims=" %%i in ('powershell -c "Get-Date -UFormat '%%Y-%%m-%%d_%%H-%%M-%%S'"') do (
  9.     set "StrPart3=%%i"
  10. )
  11. echo ffmpeg -i "%StrPart1%" -c copy "D:\%StrPart2%_%StrPart3%.ts
  12. ffmpeg -i "%StrPart1%" -c copy "D:\%StrPart2%_%StrPart3%.ts
  13. pause
复制代码

作者: asf54a65s4f54    时间: 2022-4-5 19:04

回复 2# Batcher


    感谢回复,但是我这测试好像没有处理到剪贴板的东西,图片我上传不了
作者: Batcher    时间: 2022-4-5 19:44

回复 3# asf54a65s4f54


如需上传截图,请用图床:
http://bbs.bathome.net/thread-60985-1-1.html

如需上传附件,请用阿里云盘或百度网盘。
作者: asf54a65s4f54    时间: 2022-4-5 19:53

回复 4# Batcher


   
作者: Batcher    时间: 2022-4-5 20:32

回复 5# asf54a65s4f54


    什么操作系统?Win7? Win10?
作者: asf54a65s4f54    时间: 2022-4-5 20:37

回复 6# Batcher


    Win7
作者: Batcher    时间: 2022-4-5 21:11

回复 7# asf54a65s4f54


    Win7系统的低版本PowerShell不支持第3行代码,可以考虑升级PowerShell到更高的版本。
作者: went    时间: 2022-4-5 22:19

  1. #&cls&@powershell -sta -c "Get-Content '%~0' | Out-String | Invoke-Expression" &pause&exit
  2. cls
  3. [void][System.Reflection.Assembly]::LoadWithPartialName('PresentationCore')
  4. $txt = [System.Windows.Clipboard]::GetText()
  5. if($txt -ne ''){
  6. $txt = $txt -replace 'pull-f5','pull-hls-f1'
  7. if($txt -match '-([^-_]+?)_[^_]+\.[^-_]'){
  8. $cmd = 'ffmpeg -i "{0}" -c copy "D:\{1}_{2}.ts"' -f $txt,$Matches[1],([datetime]::Now.ToString('yyyy-MM-dd_HH-mm-ss'))
  9. Write-Host $cmd
  10. $cmd | Invoke-Expression
  11. }
  12. }
复制代码

作者: WHY    时间: 2022-4-5 22:24

  1. @echo off
  2. for /f "delims=" %%i in ('mshta "JavaScript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(clipboardData.getData('text'));close()"') do (
  3.     set "url=%%i"
  4. )
  5. for /f %%i in ('wmic os get LocalDateTime ^| findstr [0-9]') do (
  6.     set "dt=%%i"
  7. )
  8. set "s1=%url:pull-f5=pull-hls-f1%"
  9. set "s2=%url:~43,18%"
  10. set "s3=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%_%dt:~8,2%-%dt:~10,2%-%dt:~12,2%"
  11. echo ffmpeg -i "%s1%" -c copy "D:\%s2%_%s3%.ts"
  12. pause
复制代码

作者: asf54a65s4f54    时间: 2022-4-6 11:58

效果很好,谢谢几位大哥的回复!




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