Я пытаюсь использовать этот командный файл для поиска и перемещения файлов ... но он не работает со скрытыми файлами. Чего не хватает?

@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

1 ответ1

0

Вам все равно придется показать файлы, потому что перемещение не будет работать с файлом, который он не может найти (даже если вы укажете полное имя файла). Там нет флага, чтобы дать двигаться, чтобы заставить его искать файлы, отмеченные скрытым атрибутом.

Показать файлы с помощью атрибута -h. Замените ваш for линию с этим набором:

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

Вы можете использовать более сложный инструмент, такой как xcopy или robocopy, который может работать со скрытыми файлами. Конечно, это инструменты копирования, так что вам все равно придется показывать исходные файлы и удалять их после завершения копирования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .