J'essaye de copier un dossier de l'ordinateur local vers un serveur distant. Cela fonctionne mais si le dossier de destination existe déjà, il crée un dossier en double à l'intérieur.

copy-item -Path C:\test -Destination \\server\F$\testpassed -recurse -Force
1
Pratik Bompilwar 21 avril 2017 à 12:17

3 réponses

Meilleure réponse

Pour copier uniquement les fichiers de C:\test vers le dossier \\server\F$\testpassed, vous devez utiliser la commande suivante:

Copy-Item -Path C:\test\* -Destination \\server\F$\testpassed -Recurse

\* est un caractère générique pour tout ce qui se trouve dans le dossier et obligera Copy-Item à copier tout ce qui se trouve dans le dossier vers la destination. Vous pouvez également utiliser *.txt pour ne copier que les fichiers txt si vous souhaitez que seul un type de fichier spécifique soit copié.


MODIFIER:

Je testerais la présence de $TARGETDIR et le créerais si nécessaire. De cette façon, vous n'avez qu'une seule commande de copie.

$TargetDir = "\\server\F$\testpassed"
$SourceDir = "C:\test"

if(!(Test-Path -Path $TARGETDIR)) {New-Item -Path $TARGETDIR -ItemType Directory}

Copy-Item -Path "$SourceDir\*" -Destination $TARGETDIR -Recurse
2
James C. 21 avril 2017 à 11:26

Essayer

 $Source = Get-childitem C:\test -Recurse

copy-item -Path $Source.FullName -Destination C:\temp -recurse -Force

Utilisez GC pour arrêter d'obtenir le dossier ainsi que le contenu.

0
Richard Dakin 21 avril 2017 à 09:55

L'utilisation du chemin source de la manière ci-dessous résoudra votre problème

Copy-Item -Path C: \ test *

1
Somnath 24 avril 2017 à 10:19