C:\WINDOWS>HELP REPLACE
Substitui ficheiros.
REPLACE
[unidade1:
][caminho1
]nomedeficheiro
[unidade2:
][caminho2
][/A
] [/P
] [/R
] [/W
]REPLACE
[unidade1:
][caminho1
]nomedeficheiro
[unidade2:
][caminho2
][/P
] [/R
] [/S
] [/W
] [/U
][unidade1:
][caminho1
]nomedeficheiro
Especifica o ficheiro ou ficheiros de origem.
[unidade2:
][caminho2
] Especifica o directório de onde os ficheiros são
substituídos.
/A Adiciona novos ficheiros ao directório de destino.
Não pode ser utilizado com os parâmetros /S ou /U.
/P Pede uma confirmação antes de substituir um
ficheiro ou de adicionar um ficheiro de origem.
/R Substitui ficheiros só de leitura e ficheiros
não protegidos.
/S Substitui ficheiros em todos os subdirectórios
do directório de destino. Não pode ser utilizado
com o parâmetro /A.
/W Espera que insira uma disquete antes de começar.
/U Só substitui (actualiza) os ficheiros mais antigos
que os ficheiros de origem. Não pode ser utilizado
com o parâmetro /A.
C:\WINDOWS>HELP RMDIR
Remove (elimina) um directório.
RMDIR
[/S
] [/Q
] [unidade:
]caminho
RD
[/S
] [/Q
] [unidade:
]caminho
/S Remove todos os directórios e ficheiros do directório
especificado
além do próprio directório. Utilizado para remover uma árvore
de directório.
/Q Modo silencioso, não confirma a remoção de uma árvore de
directório
com /S
C:\WINDOWS>HELP SET
Apresenta, define ou remove as variáveis de ambiente do cmd.exe.
SET
[variável=
[cadeia
]]variável Especifica o nome da variável de ambiente.
cadeia Especifica uma série de caracteres para atribuir à variável.
Escreva SET sem parâmetros para apresentar as variáveis de ambiente actuais.
Se as extensões de comandos estiverem activadas, o SET é alterado da seguinte
forma:
O comando SET invocado só com um nome de uma variável, sem sinal de igual nem
valor apresentará o valor de todas as variáveis cujo prefixo corresponda ao
nome dado ao comando SET. Por exemplo:
SET P
apresentaria todas as variáveis começadas pela letra 'P'
O comando SET definirá o ERRORLEVEL para 1 se o nome da variável não for
encontrado no ambiente actual.
O comando SET não permite que o sinal de igual faça parte do nome de
uma variável.
Dois novos parâmetros foram adicionados ao comando SET:
SET /A expressão
SET /P variável=
[pergunta
]O parâmetro /A especifica que a cadeia à direita do sinal de igual
é uma expressão numérica que é avaliada. O avaliador da expressão
é bastante simples e suporta as seguintes operações, pela ordem
decrescente de precedência:
() - agrupar
! ~ - - operadores unários
* / % - operadores aritméticos
+ - - operadores aritméticos
<< >> - deslocamento lógico
& - e lógico
^ - ou exclusivo lógico
| - ou lógico
= *= /= %= += -= - atribuição
&= ^= |= <<= >>=
, - separador de expressões
Se utilizar qualquer dos operadores lógicos ou de módulo, terá de colocar
a cadeia entre aspas. Quaisquer cadeias não numéricas da expressão são
tratadas como nomes de variáveis de ambiente cujos valores são convertidos
para números antes de esta ser utilizada. Se for especificado o nome de uma
variável de ambiente que não esteja definida no ambiente actual, então é
utilizado o valor zero. Isto permite-lhe efectuar operações aritméticas com
os valores das variáveis de ambiente sem ter escrever todos os sinais %
para obter os seus valores. Se o SET /A for executado a partir da linha de
comandos fora de um script de comandos, então é apresentado o valor final da
expressão. O operador de atribuição requer um nome de variável de ambiente à
esquerda do operador de atribuição. Os valores numéricos são números
decimais,
a não ser que antecedidos por 0x para números hexadecimais e 0 para números
octais.
Assim, 0x12 é igual a 18 e igual a 022. Note que a notação octal pode ser
confusa: 08 e 09 não são números válidos porque 8 e 9 não são dígitos octais
válidos.
O parâmetro /P permite-lhe definir o valor de uma variável para uma linha de
entrada introduzida pelo utilizador. Apresenta a pergunta especificada antes
de ler a linha de entrada. A pergunta pode ser vazia.
A substituição de variáveis de ambiente foi melhorada da seguinte forma:
%PATH:str1=str2%
expandiria a variável de ambiente PATH, substituindo cada ocorrência
de "str1" no resultado expandido por "str2". "str2" pode ser a cadeia
vazia para eliminar eficazmente todas as ocorrências de "str1" da saída
expandida. "str1" pode começar com um asterisco, fazendo corresponder
tudo desde o início da saída expandida até à primeira ocorrência da
restante parte de str1.
Também é possível especificar subcadeias de uma expansão.
%PATH:~10,5%
expandiria a variável de ambiente PATH e, em seguida, utilizaria apenas os 5
caracteres a partir do 11º carácter (deslocamento 10) do resultado expandido.
Se o comprimento não for especificado, então toma o valor predefinido do
resto
do valor da variável. Se algum dos números (deslocamento ou comprimento) for
negativo, então o número utilizado é o comprimento do valor da variável de
ambiente adicionado ao deslocamento ou comprimento especificado.
%PATH:~-10%
extrairia os últimos 10 caracteres da variável PATH.
%PATH:~0,-2%
extrairia todos menos os últimos 2 caracteres da variável PATH.
Finalmente, foi adicionado o suporte para a expansão de variáveis de
ambiente atrasadas. Este suporte é sempre desactivado por predefinição,
mas pode ser activado/desactivado pelo parâmetro da linha de comandos
/V do CMD.EXE. Consulte CMD /?
A expansão de variáveis de ambiente atrasadas é útil para ultrapassar
as limitações da expansão actual que acontecem quando é lida uma linha
de texto, não quando é executada. O exemplo seguinte demonstra o problema
da expansão de variáveis imediata:
set VAR=antes
if "%VAR%" == "antes" (
set VAR=depois;
if "%VAR%" == "depois" @echo Se conseguir ler isto, funcionou
)
nunca apresentaria a mensagem, porque %VAR% em AMBAS as instruções IF
é substituída quando é lida a primeira instrução IF, uma vez que inclui
logicamente o corpo do IF, que é uma instrução composta. Assim, o IF
dentro da instrução composta está realmente a comparar "antes" com "depois",
que nunca serão iguais. Da mesma forma, o seguinte exemplo não funcionará
como esperado:
set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%
porque NÃO constrói uma lista de ficheiros do directório actual, mas vai,
em vez disso, definir a variável LIST como o último ficheiro encontrado.
Novamente, isto acontece porque %LIST% só é expandida uma vez quando
é lida a instrução FOR e, naquela altura, a variável LIST é vazia.
Assim o ciclo FOR que está a ser executado realmente é:
for %i in (*) do set LIST= %i
que apenas define sempre a LIST como o último ficheiro encontrado.
A expansão de variáveis de ambiente atrasada permite-lhe utilizar um
carácter diferente (o ponto de exclamação) para expandir variáveis de
ambiente durante a execução. Se for activada a expansão de variáveis
atrasada, os exemplos anteriores poderiam ser escritos da seguinte
forma para funcionarem como pretendido:
set VAR=antes
if "%VAR%" == "antes" (
set VAR=depois
if "!VAR!" == "depois" @echo Se conseguir ler isto, funcionou
)
set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%
Se as extensões de comandos estiverem activadas, então existem várias
variáveis de ambiente dinâmicas que podem ser expandidas mas que não
aparecem na lista de variáveis apresentadas pelo SET. Estes valores de
variáveis são calculados dinamicamente de cada vez que o valor da variável
é expandido.
Se o utilizador definir explicitamente a variável com um destes nomes,
então essa definição substituirá a definição dinâmica descrita em baixo:
%CD% - expande para a cadeia de directório actual.
%DATE% - expande para a data actual utilizando o mesmo formato
do comando DATE.
%TIME% - expande para a hora actual utilizando o mesmo formato
do comando TIME.
%RANDOM% - expande para um número decimal aleatório entre 0 e 32767.
%ERRORLEVEL% - expande para o valor do ERRORLEVEL actual.
%CMDEXTVERSION% - expande para o número da versão das extensões
do processador de comandos actual.
%CMDCMDLINE% - expande para a linha de comandos original que invocou
o processador de comandos.