有人能教我正确的方法吗?这是我的尝试代码:
@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