Busque y mueva archivos ocultos de subdirectorios con archivos por lotes que no funcionan

Busque y mueva archivos ocultos de subdirectorios con archivos por lotes que no funcionan

Estoy intentando utilizar este archivo por lotes para buscar y mover archivos... pero no funciona con archivos ocultos. ¿Qué falta?

@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

Respuesta1

Vas a tener que mostrar los archivos de todos modos, porquemoverno funcionará en un archivo que no puede encontrar (incluso si proporciona el nombre de archivo completo). No hay bandera para darlemoverpara que busque archivos etiquetados con el atributo oculto.

Mostrar los archivos conatributo -h. Reemplace su forlínea con este conjunto:

for /f "delims=" %%f in ('dir /ad /b /s %root%') do (
  @attrib -h "%%f\~$*.SLD*"
  @move "%%f\~$*.SLD*" %dest%
)

Podrías utilizar una herramienta más sofisticada, comoxcopiarorobocopia, que puede operar con archivos ocultos. Por supuesto, estas son herramientas de copia, por lo que aún tendrás que mostrar los archivos originales y eliminarlos una vez finalizada la copia.

información relacionada