como usar a saída como VARIABLE e colocar o valor aparado no CLIP?

0

alguém pode me ensinar o caminho certo? aqui está o meu código de tentativa:

@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

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

é isso que eu recebi:

272951594390852679981592891584486079797 (0xCD58909D52AF1297B61A0656EC307D35)

é disso que eu preciso:

90852679981592891584486079797 (0xCD58909D52AF1297B61A0656EC30

basicamente para retirar a saída (por fator de 10 posições da esquerda e 5 da direita) e enviá-la para a área de transferência. (espero que seja claro e obrigado antecipadamente)

    
por user902300 24.05.2018 / 01:55

3 respostas

1

Primeiro, você precisa analisar a saída de mediainfo e armazená-la em uma variável antes de desmontar partes dela.

@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

a saída deve ser:

90852679981592891584486079797 (0xCD58909D52AF1297B61A0656EC30

EDITAR para elaborar a questão com mediainfo na linha de comando:

> 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...

E para capturar a saída de uma propriedade especial:

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

Em um arquivo em lote, todos os sinais de porcentagem precisam ser dobrados.

    
por 24.05.2018 / 12:21
1

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

Isso colocará o token de acesso do segundo nome de valor em uma variável value

Eu acho que o awk é a melhor maneira de fazer o que você está tentando cheers

    
por 13.09.2018 / 12:50
0

a menos que haja uma maneira mais "não-re-direta" (?) ...

@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
    
por 24.05.2018 / 22:01