A variável date (l.8) é um argumento que deve ser passado vi...
![Imagem 005.jpg](https://s3.amazonaws.com/qcon-assets-production/images/provas/1655/Imagem 005.jpg)
A automação de tarefas por meio de programas escritos em linguagens scripts pode minimizar erros de operação e agilizar as tarefas, tanto do usuário quanto do administrador. Considerando o código acima, julgue os itens a seguir.
Comentários
Veja os comentários dos nossos alunos
As variaveis de linha de comando são recuperadas no script BAT como: %1, %2, ....
Na questão, date apresenta-se como %date% o que indica ser uma variável de ambiente windows, assim como %temp%, %path%, %windir%
analisando o codigo:
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
for /f "tokens=1-5 delims=/ " %%d in (%date%) do move %%f %%e-%%f-%%g.txt
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
rem | del *.*: -> comentario. torna o del *.* sem efeito. o rem sempre vem seguido de pipe para indicar o que esta sendo comentado
for %%F in (*.*) do (........) -> for loop. em batch, for VAR%% in (pasta) é um for loop que percorre todos arquivos (*.*) no diretorio atual
%%F é a variavel que representa os arquivos. por que %%F e nao %%f? batch scripting/windows nao era case sensitive? sim. exceto para Strings e dados.
Batch file scripts are not case-sensitive, although strings and data are. The file is controlled by a list of commands separated into lines which are run like normal commands would be at the Command Prompt, although some functionality is different.
https://en.wikibooks.org/wiki/Windows_Programming/Programming_CMD
if %%~zF LSS 1 (...) -> if verificando se tamanho do arquivo atual émenor do q 1 byte. SIM. %%~zF REPRESENTA O TAMANHO DO ARQUIVO ATUAL. no batch, z é um modificador de propriedades do arquivo. combinado com a variavel (no caso %%F), busca o tamanho do arquivo (em bytes, claro). o til (~) é o concatenador de var + modificador. LSS 1 significa "less than 1".
o else () entra quando o arquivo nao é menor do q 1 byte
if not "%%F" == "%1" (.........) -> esse if verifica se o arquivo %%F nao é igual ao 1° argumento declaerado no script. logo, os argumentos sao passados por essa logica: "%2", "%3" etc
for /f -> for loop para processar o output de comandos ou arquivos (linha por linha).
for /f "tokens=1-5" -> o for loop processa a passagem por tokens, com um parsing de cada linha do arquivo. 1-5 define quais partes sao consideradas tokens distintos. "tokens=1-5" divide as linhas do arquivo em tokens, com os tokens de 1 a 5 processados individual.
ex.: for /f "tokens=1-3" com um arquivo texto com uma linha:
conquanto porquanto portanto contudo contanto
vai ser parseado:
token 1: conquanto
token 2: porquanto
token 3: portanto
for /f "tokens=1-5 delims=/ " -> delims indica caracter delimitador. no caso, /
for /f "tokens=1-5 delims=/ " %%d in (%date%) do move %%f %%e-%%f-%%g.txt -> com os tokens extraídos (tokesn=1-5)e o delimitador delims (delims=/ "), o comando pega a data atual (%%d in *%date%) e renomea arquivo %%F para um formato seguindo o padrao estabelecido por tokens=1-5 de acordo com o parsing das linhas do arquivo. %%e-%%f-%%g.txt segue o formato de data dia-mês-ano.
quanto à resposta, é errada.
a vairavel %date% nao precisa de argumento porque refere a uma variavel do sistema q contém a data atual consoante o formato de data no windows
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo