Échec du script PowerShell lors de la commande "Copy-Item"

Sep 13 2020

Je suis novice en Powershell. J'ai écrit un script .ps1 pour faire un certain nombre de choses, qui s'exécutent toutes parfaitement, sauf lorsqu'il s'agit d'une commande "Copy-Item" que j'utilise pour copier le contenu du bureau (Windows 10) un autre dossier.

Il échoue au trait d'union dans "Copy-Item". J'ai le sentiment que je manque un "*" dans l'un des chemins. ou en avoir un là où il ne devrait pas être. Je l'ai essayé avec différentes combinaisons, mais pas de joie.

À des fins de test, j'ai 3 éléments sur le bureau: 1) un raccourci de dossier, 2) un raccourci de script Powershell et 3) Un «dossier» GodMode.

Merci d'avance pour votre aide. Voici un sous-ensemble du code:

$env:path += ";D:\PowershellScriptsFolder" # this is the location of my ps1 # (a bunch of code here, all of which runs fine) # # Desktop # Define Variables $DestinationPath = "D:\folder1\subfolder\*"
        $SourcePathRoot = 'C:\Users\Sfrn\Desktop\' # this is the location of my Win 10 desktop # Remove-Item -Recurse -Path $DestinationPath -Force

(*** Voici où ça échoue: ***)

Copy-Item -Recurse -Path $SourcePathRoot -Destination $DestinationPath -Force #   this is line 32

(*** Voici la sortie d'erreur - le caractère 5 est le trait d'union dans "Copy-Item": ***)

Copy-Item: Caractères illégaux dans le chemin. À D: \ Dropbox \ DB_AppData \ PowerShell_and_Bat \ CopyToBackup_2.ps1: 32 char: 5

  • Copy-Item -Recurse -Path $SourcePathRoot -Destination $Destinatio ...
    
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo: InvalidArgument: (D: \ Dropbox \ DB_AppData \ Desktop *: String) [Copy-Item], ArgumentException
    • FullyQualifiedErrorId: CreateDirectoryArgumentError, Microsoft.PowerShell.Commands.CopyItemCommand

Copy-Item: Caractères illégaux dans le chemin. À D: \ Dropbox \ DB_AppData \ PowerShell_and_Bat \ CopyToBackup_2.ps1: 32 char: 5

  • Copy-Item -Recurse -Path $SourcePathRoot -Destination $Destinatio ...
    
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo: InvalidArgument: (desktop.ini: FileInfo) [Copy-Item], ArgumentException
    • FullyQualifiedErrorId: CopyDirectoryInfoItemArgumentError, Microsoft.PowerShell.Commands.CopyItemCommand

Copy-Item: Caractères illégaux dans le chemin. À D: \ Dropbox \ DB_AppData \ PowerShell_and_Bat \ CopyToBackup_2.ps1: 32 char: 5

  • Copy-Item -Recurse -Path $SourcePathRoot -Destination $Destinatio ...
    
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo: InvalidArgument: (Dropbox.lnk: FileInfo) [Copy-Item], ArgumentException
    • FullyQualifiedErrorId: CopyDirectoryInfoItemArgumentError, Microsoft.PowerShell.Commands.CopyItemCommand

Copy-Item: Caractères illégaux dans le chemin. À D: \ Dropbox \ DB_AppData \ PowerShell_and_Bat \ CopyToBackup_2.ps1: 32 char: 5

  • Copy-Item -Recurse -Path $SourcePathRoot -Destination $Destinatio ...
    
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo: InvalidArgument: (OpenApps.lnk: FileInfo) [Copy-Item], ArgumentException
    • FullyQualifiedErrorId: CopyDirectoryInfoItemArgumentError, Microsoft.PowerShell.Commands.CopyItemCommand

Copy-Item: Caractères illégaux dans le chemin. À D: \ Dropbox \ DB_AppData \ PowerShell_and_Bat \ CopyToBackup_2.ps1: 32 char: 5

  • Copy-Item -Recurse -Path $SourcePathRoot -Destination $Destinatio ...
    
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo: InvalidArgument: (D: \ Dropbox \ DB_AppData \ Desktop *: String) [Copy-Item], ArgumentException
    • FullyQualifiedErrorId: CreateDirectoryArgumentError, Microsoft.PowerShell.Commands.CopyItemCommand

(*** Fin de la sortie d'erreur: ***)

(un tas de code continue de fonctionner ici, tout va bien)

FIN

Réponses

2 catherinemohan Sep 13 2020 at 06:16

Vous avez un astérisque au mauvais endroit. Il doit être dans le chemin du répertoire source, pas dans la destination, comme ceci:

$SourcePathRoot = "C:\Users\Sfrn\Desktop\*" $DestinationPath = "D:\folder1\subfolder\"