Suchen und Verschieben versteckter Dateien aus Unterverzeichnissen mit Batchdatei funktioniert nicht

Suchen und Verschieben versteckter Dateien aus Unterverzeichnissen mit Batchdatei funktioniert nicht

Ich versuche, diese Batchdatei zum Suchen und Verschieben von Dateien zu verwenden, aber bei versteckten Dateien funktioniert es nicht. Was fehlt?

@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

Antwort1

Sie müssen die Dateien trotzdem sichtbar machen, dennbewegenfunktioniert nicht bei einer Datei, die es nicht finden kann (selbst wenn Sie den vollständigen Dateinamen angeben). Es gibt kein Flag, dasbewegenum es dazu zu bringen, nach Dateien zu suchen, die mit dem Attribut „Versteckt“ gekennzeichnet sind.

Blenden Sie die Dateien ein mitAttribut -h. Ersetzen Sie Ihre forZeile durch diesen Satz:

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

Sie können ein anspruchsvolleres Tool verwenden, wiexkopieoderRobokopie, das mit versteckten Dateien arbeiten kann. Natürlich handelt es sich hierbei um Kopiertools, Sie müssen also die Originaldateien noch sichtbar machen und sie nach Abschluss des Kopiervorgangs löschen.

verwandte Informationen