Update Application Version Automatically - Cordova

Asked

Viewed 50 times

1

The script below saves the version to a txt, however is giving some error that in the file txt appears as :

"ECHO is disabled".

@ECHO OFF

CALL npm version > version

SET /p ver=<version
DEL version
SET ver=%ver:{ 'aplicat-resta': '='%
SET ver=%ver:~1,-2%

CALL cordova-set-version -v %ver%

ECHO %ver% > ..\..\AplicatResta\Resta\version_app.txt

ECHO on

Can anyone know exactly what is occurring this error? Or any way to update the version automatically?

Note: when I call cordova-set-version, the same is not recognized, but even if I comment it still records "ECHO está desativado" in the txt.

1 answer

0

Can anyone know exactly what is occurring this error? Or some way to update the version automatically?

  • 1. Redirect all command output lines CALL npm version for archival version:
CALL npm version > version 
:: salva todas as linhas da saída de comando no arquivo version
  • 2. Defines the variable set ver={ (only the first line of the redirected command)
SET /p ver=<version 
:: set /p vai assumir/definir sempre a primeira linha 
:: do arquivo redirecionado, no seu caso version ==> "{"
  • 3. Defines the variable ver with a substring(a) /substitution that is non-existent
SET /p ver=<version 
            ↳ é o mesmo que: SET /p ver={ 

SET ver=%ver:{ 'aplicat-resta': '='%
SET ver=%ver:{ 'aplicat-resta': '='%
:: o valor atribuido na variável ver não comporta/não executa 
:: a substituição, então a variável mantém seu valor atual ver={
  • 4. Removes the variable ver with the command SET ver=
SET ver=%ver:~1,-2% 
              ↳  ↳ é o mesmo que: SET ver= 
SET ver=%ver:~1,-2%
:: não existe um index 1 na sua variável definida como {, 
:: também não há como suprimir os ultimos 2 dígitos da várivel de forma que 
:: possa obedecer a substring: variável=(variável: valor do (index 1), até o (index total -2))
:: assim, vai resultar num valor nulo, tornando a execução na remoção da sua variável: SET ver=
  • 5. An issue that explains what you want to pass as see would point to a more accurate solution
CALL cordova-set-version -v %ver% 
CALL cordova-set-version -v %ver%
              ↳ é o mesmo que: Call cordova-set-version -v 
:: como a variável foi removida, esse comando é executado com um argumento
:: a menos, onde não há a variável nem valores em/para ver definidos em %ver%
  • 6. Commando echo will inform your status defined by on or off when executed and/or redirecting on output to the pointed file:
ECHO %ver% > ..\..\AplicatResta\Resta\version_app.txt
ECHO %ver% > ..\..\AplicatResta\Resta\version_app.txt
  ↳       ↳ é o mesmo que: ECHO > ..\..\AplicatResta\Resta\version_app.txt

:: como a variável %ver% foi removida nas execuções anteriores, o interpretador 
:: de comandos (cmd.exe) não tem como passar argumento %ver% para o comando ECHO
:: resultando como saída do ECHO [%string nenhuma%] + [redirecionamento de sáida] [arquivo.txt],
:: apenas o status atual do comando ECHO, e como foi definido na primeira linha do seu arquivo bat
:: (@echo off), é exatamente isto que tens recebes no arquivo apontado para redirecionamendo do echo

  • For the purpose of proving behaviour echo
:: define echo off
@echo off && cd /d "%~dp0"

:: apaga existindo ou não o arquivo .\status.txt 
2>nul del .\status.txt

:: remove definida ou não a variável ver
set "ver="

:: teste de 'echo variável que não existe' fazendo retornar status definido `off`
ECHO %ver% >status.txt

:: lista conteúdo atual do arquivo .\status.txt
@type status.txt

:: define echo on
@echo on

:: teste de 'echo variável que não existe' fazendo retornar status definido `on`
@ECHO %ver% >status.txt

:: lista conteúdo atual do arquivo .\status.txt
@type status.txt
  • Outputs/outputs:
ECHO is off.
ECHO is on.

To learn more about the command Echo consult:

Browser other questions tagged

You are not signed in. Login or sign up in order to post.