如何使用输出作为变量并将修剪值放入 CLIP?

如何使用输出作为变量并将修剪值放入 CLIP?

有人能教我正确的方法吗?这是我的尝试代码:

@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

"%~dp0..\x64\mediainfo.exe" --Inform=General;%%UniqueID/String%% "%~dp0..\files\SOURCE.avi" | clip 

这是我得到的:

272951594390852679981592891584486079797 (0xCD58909D52AF1297B61A0656EC307D35)

这就是我需要的:

90852679981592891584486079797 (0xCD58909D52AF1297B61A0656EC30

基本上就是剥离输出(从左边剥离 10 个位置,从右边剥离 5 个位置)并将其发送到剪贴板。(希望它清楚,提前谢谢您)

答案1

您首先需要解析 mediainfo 的输出并将其存储到变量中,然后才能剥离它的各部分。

@echo off
For /f "delims=" %%A in ('
  C:\Temp\X\x64\mediainfo.exe --Inform^=General^;%%UniqueID/String%% "C:\Temp\X\files\SOURCE.avi"
') Do set "var=%%A"
Echo=%var:~10,-5%| clip

输出应为:

90852679981592891584486079797 (0xCD58909D52AF1297B61A0656EC30

编辑在命令行上使用 mediainfo 详细说明该问题:

> mediainfo.exe --Inform=General drop.avi
General
Complete name                            : drop.avi
Format                                   : AVI
Format/Info                              : Audio Video Interleave
File size                                : 660 KiB
Duration                                 : 6 s 67 ms
Overall bit rate                         : 891 kb/s
IsTruncated                              : Yes
...snip...

并捕获特殊属性的输出:

> for /f "delims=" %A in ('mediainfo.exe --Inform^=General^;%Format/Info%  drop.avi') do @echo=%A
Audio Video Interleave

在批处理文件中,所有百分号都必须加倍。

答案2

value=`http POST localhost:3000/test/login < test/login.json -h |awk ‘/Access-Token/{print $2}`

这会将第二个值名称 Access token 放入变量中value

我想 awk 是完成你正在尝试的事情的最佳方式cheers

答案3

除非有更“非重定向”的方式(?)...

@echo off

"%~dp0..\x64\mediainfo.exe" --Inform=General;%%UniqueID/String%% "%~dp0..\files\SOURCE.avi" > s.txt

set /p var=< s.txt

DEL /Q /F s.txt

echo=%var:~10,-5% | clip

相关内容