Ciao leoniDAM,
benvenuto nella nostra community!
Per risolvere il tuo problema pensavo di utilizzare un array (un ArrayList, per essere più precisi), in grado di ospitare, mano a mano che il tuo script procede con la copia, la lista dei file che non è stato possibile copiare.
Per prima cosa inizializziamo l'ArrayList che utilizzeremo nello script:
$failedFiles = New-Object System.Collections.ArrayList
Poi sarà necessario utilizzare una nuova funzione, creata ad hoc, per memorizzare in caso di fallimento il nome del file problematico (volendo potresti anche memorizzare il percorso di destinazione, se ti fosse utile...):
function CopyItemAndLogFailure($source, $target) {
try {
Copy-Item $source $target
}
catch {
$failedFiles.Add($source) |
Out-Null
}
}
A questo punto sarà possibile richiamare la funzione, che si occuperà di alimentare
$failedFiles qualora dovessero esserci dei problemi con
Copy-Item:
CopyItemAndLogFailure .\test.txt C:\NoWhere\
I nomi dei file problematici saranno disponibili all'interno di
$failedFiles. Per resettare l'ArrayList è possibile richiamarne il metodo
Clear() in qualsiasi momento.
Spero di esserti stato utile.
Ciao, a presto!