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 for
Zeile 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.