Você pode verificar facilmente se um diretório já está presente com uma pequena ajuda de cmdlet Test-Path :
param(
[string]$InputPath,
[string]$OutputPath,
[string]$rc_parameter
)
if((Test-Path -Path $OutputPath -PathType Container) -eq $true){
Write-Out "Output-Path already exists - aborting!"
Exit
}else{
Start-Process robocopy -ArgumentList "'"$InputPath'" '"$OutputPath'" $rc_parameter" -NoNewWindow -Wait
Write-Out "If Robocopy did not throw any errors, everything went fine!"
}
Basta salvá-lo como myrobocopyscript.ps1
, iniciar um console do PowerShell e digitar:
# Syntax:
.\myrobocopyscript.ps1 -InputPath "<YOUR_INPUT-PATH>" -OutputPath "<YOUR_OUTPUT-PATH>" -rc_parameter "/<YOUR_PARAMETERS>"
# Example:
.\myrobocopyscript.ps1 -InputPath "D:\Downloads" -OutputPath "E:\NewFolder" -rc_parameter "/MIR /R:5 /W:15"')
Você também pode usar Test-Path
para seu $InputPath
: basta adicionar outra condição if(Test-Path)
para isso.
Outra opção (totalmente manual) é dividir sua operação existente em três etapas:
- Use
/L
-Switch do Robocopy . Isso listará apenas todas as operações que o Robocopy faria - sem realmente executá-las. (Você pode escrever um/LOG:
-File, então você pode usar um editor de texto para usar Ctrl + F na etapa 2) - Verifique a saída dos arquivos
EXTRA
e, se nenhum for exibido, - Você pode executar o Robocopy sem
/L
.
No entanto, não acho que isso seja muito útil, pois é fácil perder informações quando mais de algumas dezenas de arquivos devem ser processados.