출력을 VARIABLE로 사용하고 트림 된 값을 CLIP에 넣는 방법?


0

누구든지 올바른 방법으로 가르쳐 줄 수 있습니까? 여기 내 시도 코드가 있습니다 :

@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

배치 파일에서 모든 퍼센트 부호는 두 배가되어야합니다.


나는이 뭔가를 배웠습니다,하지만 난) (종료하지 않고 ")"명시된 바와 같이 아니, 내가 출력을 필요로하고 또한 나는 게시물에 언급하지 대해 사과 SOURCE.avi할 필요가 "%~dp0..\files\SOURCE.avi"그래서 그것을 다시 실행하려고하지만 작품을 나던 >>For /f "tokens=1" %%A in ('"%~dp0..\x64\mediainfo.exe" --Inform=General;%%UniqueID/String%% "%~dp0..\files\SOURCE.avi"') Do set "varA=%%A" Echo=%varA:~10,-5% | clip
gamer0

위의 배치를 변경 하면 mediainfo 명령에서 및 / 또는 for /f이스케이프 를 여러 인수로 나누지 않도록주의해야합니다. 다른 .avi 파일에 대한 다른 인수로 여기에서 작동했습니다. =;^
LotPings

이 새로운 것은 오류를 일으켜 'C:\Temp\X' is not recognized as internal or external command, operable command or batch file% ~ dp0 부분이 FOR에 의해 평가되지 않은 것 같습니다.
gamer0

작은 따옴표 '를 큰 따옴표 로 변경 `하거나usebackq
LotPings

내 예제와는 항상 조금씩 다른 것 같습니다 :-( 배치 파일을 어디에 저장하고 mediainfo / avi는 어디에 있습니까?
LotPings

1

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

이것은 두 번째 값 이름 액세스 토큰을 변수에 넣습니다. value

나는 awk가 당신이하려는 일을하는 가장 좋은 방법이라고 생각합니다. cheers


0

보다 "직접적이지 않은"방법이 없다면 (?) ...

@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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.