Excluir arquivo se encontrado

2

Eu tenho um script em lote com uma linha como esta:

del "%TARGET_DIR%\packages.config"

Mas se packages.config não existir no diretório de destino, ele produzirá um erro.

Could Not Find \...\packages.config

Existe uma chave de linha de comando del que impedirá o aumento de um erro que o arquivo de destino não foi encontrado? Eu estou aberto para usar um if exists se eu tiver que, mas eu tenho um número de comandos semelhantes, e eu gostaria de evitar ter que fazer isso para cada arquivo que eu possa querer excluir.

    
por p.s.w.g 14.01.2014 / 16:54

2 respostas

3

Você pode funcionalizar suas chamadas IF EXISTS/DEL para que o código não seja repetido uma tonelada; para fazer funções falsas no DOS, veja isto .

Eles usam instruções GOTO para implementar funções, mas devem funcionar da mesma forma.

A partir dessa página:

Exemplo de função:

:myDosFunc    - here starts my function identified by it's label
echo. here the myDosFunc function is executing a group of commands
echo. it could do a lot of things
GOTO:EOF

Chamando a função:

call:myDosFunc

Para uso em IF EXISTS, veja isto .

    
por 14.01.2014 / 17:14
2

Você pode redirecionar stderr para null:

del "%TARGET_DIR%\packages.config" 2> nul

ref

    
por 14.01.2014 / 17:17