2017-09-27 3 views
0

Mon problème est que powershell me donne toujours le msg d'erreur: « Le fichier ne peux pas Ecraser avec lui-même » et je ne sais pas pourquoiJ'ai un problème avec Copy-Item dans Powershell

$source=$textBox1.text 
$dest=$textBox2.Text 
$usr=$textBox3.text 
##### ## Je recommande De
$fNoBackup =    "\\$source\c$\Users\$usr\AppData\Local\NoBackup\*" 
$fData =     "\\$source\c$\Users\$usr\AppData\Local\Lotus\Notes\Data\*" 
$fCustomDestinations =  "\\$source\c$\Users\$usr\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations\*" 
$fAutomaticDestinations = "\\$source\c$\Users\$usr\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\*" 
####### Pour
$tNoBackup =    "\\$dest\c$\Users\$usr\AppData\Local\NoBackup" 
$tData =     "\\$dest\c$\Users\$usr\AppData\Local\Lotus\Notes\Data" 
$tCustomDestinations =  "\\$dest\c$\Users\$usr\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations" 
$tAutomaticDestinations = "\\$dest\c$\Users\$usr\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" 
####### le copie
#############"Touch" the files ;D 
New-Item -ItemType File -Path $tNoBackup -Force 
New-Item -ItemType File -Path $tData -Force 
New-Item -ItemType File -Path $tCustomDestinations -Force 
New-Item -ItemType File -Path $tAutomaticDestinations -Force 

#############Copy 
Copy-Item $fNoBackup    $tNoBackup -Recurse -Force 
Copy-Item $fData     $tData -Recurse -Force 
Copy-Item $fCustomDestinations  $tCustomDestinations -Recurse -Force 
Copy-Item $fAutomaticDestinations $tAutomaticDestinations -Recurse -Force 
+0

Est-ce que ma réponse vous a aidé? – Binarus

Répondre

0

Pour débugger, e à vous imprimez le contenu de vos variables à la console. De cette façon, vous comprendrez quel est le problème.

Je ne connais pas Powershell, mais je vois quelque chose qui pourrait poser problème. Évidemment, $ dans une chaîne a une signification spéciale (il semble indiquer des variables). Par conséquent, je suppose que vous devez citer (échappement) le signe $ si vous voulez qu'il soit littéral dans la chaîne. Dans chacune de vos chaînes, vous avez c$. Cela devrait probablement être c`$ car ` est le caractère d'échappement dans Powershell. Lorsque vous avez fait cela, imprimez les cordes à nouveau sur la console pour vous assurer que vous les avez bien.