Die robocopy
command bietet eine intelligente Funktion zum Ausschließen (Schalter /XD
und /XF
) als xcopy
tut , die Sie für Ihre Aufgabe verwenden könnten:
robocopy "C:\WebService" "%InstallFolder%" "*.*" /XD "*.config" "Properties" "Obj" /XF "*Proxy.dll" /E /S /FP /NJH /NJS /NS /NC /NDL /NP /LOG+:"Setup.log"
die Switches sowie die /FP
Schaltersteuerung das Auftreten des protokollierten Ausgang mit /N
starten, so dass es zu dem der Befehl xcopy
sehr ähnlich ist.
Wenn Sie auf der /EXCLUDE
Option von xcopy
bestehen: diese nicht unterstützt Wildcards wie *
oder ?
aber wörtliche (Groß- und Kleinschreibung) Strings nur. Sie können die Wildcard jedoch im Voraus in *Proxy.dll
auflösen. Angenommen, Sie haben eine Datei XcopyExclude.txt
mit folgendem Inhalt ...:
.config\
\Properties\
\Obj\
... (unter der Annahme, dass alle diese Elemente sind (teilweise) Verzeichnisnamen), könnten Sie diesen Inhalt eine temporäre Kopie Datei und fügen Sie den aufgelösten *Proxy.dll
Teil, vor der eigentlichen Kopier Aktivität:
rem // Prepare exclusion list file:
copy /Y "XcopyExclude.txt" "XcopyExclude.tmp"
>> "XcopyExclude.tmp" (
for /R "C:\WebService" %%E in ("*Proxy.dll") do (
echo(\%%~nxE
)
)
rem // Perform copying action:
xcopy "C:\WebService" "%InstallFolder%" /E /S /K /R /H /Y /I /EXCLUDE:XcopyExclude.tmp >> "Setup.log"
rem // Clean up temporary list file:
del "XcopyExclude.tmp"
Nimmt man eine Datei AnyProxy.dll
in Quellverzeichnisstruktur, der diesbezügliche Eintrag für Datei XcopyExclude.tmp
wäre 0 aufgerufen ist. Beachten Sie, dass ein Artikel mit der Bezeichnung AnyProxy.dll.any
versehentlich ebenfalls ausgeschlossen werden würde.
'Robocopy'-Befehl,'/XF' (Dateien ausschließen) Schalter –
Bitte bearbeiten Sie Ihre Frage und teilen Sie Ihre (erfolglosen) Versuche, einen [mcve] zu befriedigen. – JosefZ