Estou tentando usar este arquivo em lote para localizar e mover arquivos... mas não funciona em arquivos ocultos. O que está a faltar?
@echo off
setlocal
set root=E:\backup
set dest=E:\Tmp
for /f "delims=" %%f in ('dir /ad /b /s %root%') do @move "%%f\~$*.SLD*" %dest%
endlocal
Responder1
Você terá que reexibir os arquivos de qualquer maneira, porquemovernão funcionará em um arquivo que não consegue encontrar (mesmo se você fornecer o nome completo do arquivo). Não há bandeira para darmoverpara que ele procure por arquivos marcados com o atributo oculto.
Reexibir os arquivos comatribuir -h. Substitua sua for
linha por este conjunto:
for /f "delims=" %%f in ('dir /ad /b /s %root%') do (
@attrib -h "%%f\~$*.SLD*"
@move "%%f\~$*.SLD*" %dest%
)
Você poderia usar uma ferramenta mais sofisticada, comoxcopiarourobocópia, que pode operar em arquivos ocultos. Claro, essas são ferramentas de cópia, então você ainda terá que reexibir os arquivos originais e excluí-los após a conclusão da cópia.