Question Simple Fonction de copie qui "bug"

Plus d'informations
il y a 11 ans 2 mois #19247 par xyz
Réponse de xyz sur le sujet Re:Simple Fonction de copie qui
Bylliboy écrit:

sauf que pour moi ça marche pas vu qu'il mélange les 2 arguments

'Il' n'est pas en cause, c'est toi qui utilise une syntaxe, les parenthèses, qui crée un tableau:
[code:1]
#crée un tableau
$Var=('C:\TEST', 'E:\NomPc\SVG\')
$Var.GetType()

#Transforme un tableau de chaine (deux élements) en une string (une seule)
\"$Var\"
\"$Var\".GetType()
[/code:1]
La syntaxe d'appel d'une fonction Powershell n'utilise pas les parenthèses pour passer des paramètres.
Sous Powershell la syntaxe que tu utilises crée d'abord un tableau puis le passe à ta fonction. Le premier paramètre étant de type string, PS tente de le transformer en une chaîne et cette transformation réussie.

Si tu juges que les deux paramètres doivent être renseignés il faut donner ce type d'information au parseur de Powershell via des attributs :
[code:1]
function Copie {
param(
[ValidateNotNullOrEmpty()]
[Parameter(Mandatory=$true,Position=0)]
[string]$Source,

[ValidateNotNullOrEmpty()]
[Parameter(Mandatory=$true,Position=1)]
[string]$Destination
)

$Source.GetType()
Write-Host \"Source=$Source\"
$Destination.GetType()
Write-Host \"Destination=$Destination\"
}

Copie ('C:\TEST', 'E:\NomPc\SVG\')
Copie -Source ('C:\TEST', 'E:\NomPc\SVG\') -Destination ''
Copie -Source 'C:\TEST' -Destination 'E:\NomPc\SVG\'
Copie 'C:\TEST' 'E:\NomPc\SVG\'
[/code:1]
Un grand classique pour débutant Powershell ;)

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 2 mois #19248 par Fabien
Réponse de Fabien sur le sujet Re:Simple Fonction de copie qui
Ha! ENFIN! une vrai explication!
MERCI!
Maintenant le débutant que je suis comprend.
Et ça fonctionne.
Gracias Laurent.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.036 secondes
Propulsé par Kunena