O problema é que na linha (o bloco ( )
é analisado como uma única linha), todas as variáveis %foo%
são avaliadas apenas uma vez, antes de executar o loop for
.
A opção enabledelayedexpansion
faz ajuda. No entanto, isso não altera as regras de análise para a sintaxe usual da variável %foo%
. Em vez disso, ele introduz um novo - usando !
como delimitadores.
for %%i in (*.nsf) do (
echo !date! !time!>> C:\backup\resuZip.log
)
Tenha muito cuidado com isso, no entanto, como a expansão atrasada acontece depois que as variáveis %foo%
foram expandidas. Portanto, isso resultará em uma saída inesperada se uma variável %
tiver pontos de exclamação. As regras de análise do cmd.exe são completamente dolorosas às vezes.
Eu recomendo strongmente que você use um idioma diferente para o seu script. O PowerShell seria uma boa escolha, considerando que é parte das versões mais recentes do Windows e possui ferramentas para gerenciar vários componentes do Windows Server.