Question
Simple Fonction de copie qui "bug"
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 11 ans 2 mois #19247
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Simple Fonction de copie qui
Bylliboy écrit:
[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
'Il' n'est pas en cause, c'est toi qui utilise une syntaxe, les parenthèses, qui crée un tableau:sauf que pour moi ça marche pas vu qu'il mélange les 2 arguments
[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.
- Fabien
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
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.
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Simple Fonction de copie qui "bug"