pipe + um número de dígito não ecoa

0

Eu tenho um script que lê a contagem de linhas do arquivo e define esse número na variável ROWCOUNT .

Então, para adicionar rodapé como este "F | 5" ao arquivo file.txt com ROWCOUNT minus header eu faço a subtração e com echo envia-a para o arquivo, mas nessa linha não tenho certeza qual parte falha como " ^ | " deve imprimir tubo ainda na tela, mostra F | apenas e o arquivo gerado está vazio.

Além disso, isso deixa de ser um problema quando ROWCOUNT > 10

@echo off
set ROWCOUNT=7
set /A TT=ROWCOUNT-1
echo F^|%TT%>>C:\Users\file.txt
pause

Mesmo com echo off, esta é a saída gráfica e o arquivo.txt está vazio:

F|
Press any key to continue . . .
    
por bot20141209 09.12.2014 / 16:01

1 resposta

0

Um número imediatamente anterior ao redirecionamento representa um identificador de arquivo. Quando você usa o redirecionamento como >>someFile , isso realmente significa 1>>someFile , em que 1 representa stdout. Há também 2 para stderr e 0 para stdin. Outras alças de arquivos podem ser definidas pelo seu código.

Seu código tem um número antes do redirecionamento, por isso está sendo interpretado como um identificador de arquivo indefinido.

A solução é simplesmente mover o redirecionamento para a frente.

>>C:\Users\file.txt echo F^|%TT%

Outra opção é usar parênteses

(echo F^|%TT%)>>C:\Users\file.txt
    
por 09.12.2014 / 18:14

Tags