na máscara do DOS (e na linha de comando do Windows) para todos os arquivos é *.*
. Como em "arquivos sempre tem uma extensão, às vezes é uma string vazia". E nomes de arquivos não podem terminar com .
Portanto, mascarar *
canonicamente significa "arquivos com extensão vazia". Mas alguns utilitários, incluindo xcopy como você encontrou, automagicamente expandem *
para *.*
porque ... bem, eu não procuro lógica quando não há uma. Então, *
é o atalho para *.*
em alguns casos.
Além disso, xcopy é aparentemente muito inteligente e substitui a extensão mesmo com
xcopy *.* *.*.bak
para adicionar .bak
extension, use% comumcopy
com
copy * *.*.bak
(observe que copy * *.bak
ainda substituirá extensão)
ou, se você
FOR %%I IN (*.*) DO xcopy %%I "%%~I.bak"
(em uma linha de comando interativa, use um único sinal de porcentagem %
em vez de %%
)