J'essaie d'utiliser la cmdlet PowerShell Invoke-Expression
pour lancer RoboCopy.Robocopy n'a pas reconnu les options lors du lancement depuis PowerShell
Dans le script ci-dessous, RoboCopy fonctionnait correctement lorsque l'option était simplement ''. 'mais dès que l'option'/MIR 'a été ajoutée j'ai eu cette erreur "Invalid Parameter # 3".
Il semble que RoboCopy rencontre des problèmes d'analyse de '/ MIR' et s'est étouffé sur la barre oblique dans l'option. J'ai essayé d'utiliser toutes sortes de caractères d'échappement en vain!
# Source & Destination paths
#
[string]$srcPath = 'C:\folderSrc'
[string]$desPath = 'C:\folderDes'
# Example 1
# ----------
# This works - note how $option1 contains only '*.*'
#
[string]$option1 = '*.*'
[string]$line = 'RoboCopy $srcPath $desPath $option1'
Invoke-Expression "$line"
# Example 2:
# ----------
# This doesn't work - after '/MIR' is added to the option, RoboCopy seems to choke on the forward slash in '/MIR'
#
[string]$option2 = '*.* /MIR'
[string]$line = 'RoboCopy $srcPath $desPath $option2'
Invoke-Expression "$line"
Dans ma question, l'exemple 1 fonctionne, mais pas l'exemple 2. et la seule différence est $ option1 = '\ *. \ *' et $ option2 = '\ *. \ */MIR' – user3657462
Je ne pense pas qu'il y avait un problème d'expansion variable parce que l'exemple 1 ne fonctionnerait pas si les variables ne pas se développer correctement – user3657462
Tout d'abord, s'il vous plaît [modifier votre question] (http://stackoverflow.com/posts/42496558/edit), n'ajoutez pas de commentaires pour essayer de le modifier. Deuxièmement, sachant qu'il s'agit d'un interprète et non d'un PowerShell direct, comme vous le dites dans votre réponse à la réponse de Christopher G. Lewis, je pense que c'est un problème avec votre interprète et non avec PowerShell lui-même. Il semblerait que l'interprète ne gère pas correctement la barre oblique. – TheMadTechnician