Question Fractionnement chaine caractère

Plus d'informations
il y a 2 ans 10 mois #30912 par Arnaud Petitjean
Effectivement, j'ignore pourquoi à l'indice 1 nous avons rien ? Il doit sûremment y avoir une explication logique... ;-)

Oui l'opérateur Split, ainsi que Replace n'acceptent que des RegEx. Mais si tu leur donne une chaine simple, c'est aussi considéré comme une RegEx.

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 2 ans 10 mois - il y a 2 ans 10 mois #30913 par witness
Réponse de witness sur le sujet Fractionnement chaine caractère
Merci pour les deux démonstration, j'avoue que cette dernière est intéressante mais je vais opter pour la première 
Dernière édition: il y a 2 ans 10 mois par witness.

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

Plus d'informations
il y a 2 ans 10 mois - il y a 2 ans 10 mois #30914 par witness
Réponse de witness sur le sujet Fractionnement chaine caractère
Maintenant que je sais comment récupérer le nom de l'imprimante, me reste à aller chercher cette information dans le fichier txt en fonction du nom de l'ordinateur.
Si l'ordinateur s'appelle "s202-01" et qu'une ligne dans mon fichier contient "\\server\imp-s202", on retrouve la première partie du nom de l'ordinateur dans le nom de l'imprimante, du coup c'est cette imprimante là à mapper.

Ou bien on peut faire autrement, si le nom de l'ordinateur apparait dans la liste, l'imprimante qui est indiquée en fin de ligne doit être mappée. 
Par exemple si l'ordinateur se nomme "s202-01" et que dans le fichier txt, il y a cette ligne "s202-01:\\server\imp-s202", alors c'est cette imprimante qui doit être mappée.
Dernière édition: il y a 2 ans 10 mois par witness.

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

Plus d'informations
il y a 2 ans 10 mois #30918 par Arnaud Petitjean
Bonjour Witness !

Je vais essayer de te mettre sur la voie... ;-)

Donc, si je résume, les étapes sont : 
  1. Récupération du nom de l'ordinateur
  2. Récupération de la ligne dans le fichier texte qui contient le nom de l'ordinateur récupéré à l'étape 1
  3. Extraction du nom de l'imprimante à partir de la ligne de texte récupérée à l'étape précédente
  4. Montage de l'imprimante
Facile, non ? :)
# 1. Récupération du nom de l'ordinateur
$myPC = $env:Computername

# 2. Récupération de la ligne dans le fichier texte qui contient le nom de l'ordinateur
# 2.1 Chargement du fichier texte en mémoire (en supposant que ton fichier soit nommé printers.txt et présent dans c:\temp)
$printers = Get-Content -Filepath C:\temp\printers.txt

# 2.2. On recherche une ligne de texte qui contient le nom de l'ordinateur
$printer = $printers | Where-Object { $_ -like "*myPC*"}

$printer -match '.+\:\\\\(?<servername>.+)\\(?<printername>.+)'
$printerName = $matches.printername

# 3. On connecte l'imprimante. Et là je te laisse réfléchir un peu... ;-)

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 2 ans 10 mois - il y a 2 ans 10 mois #30920 par ericlm128
Réponse de ericlm128 sur le sujet Fractionnement chaine caractère

En faisant divers tests en modifiant le [-1] j'obtiens:
[0] = s202-01:
[1] = rien
[2] = server
[3] = imp-s202

On peut mettre [3] plutôt que [-1] du coup ?


Pourquoi quand je mets [1] ça ne me renvoie rien ? J'aurais pensé qu'à la position [1] du tableau il y aurait la deuxième partie du fractionnement, vu que l'index commence à la position [0] ?
Tout parait normal, il faut bien comprendre qu'il divise la chaine de caractère en tableau sur chaque caractère \

Je vais schématiser si j'y arrive :
s202-01:\\server\imp-s202 -> Index0{s202-01:}\Index1{}\Index2{server}\Index3{imp-s202}
 
Le vide de l'index 1 est donc le vide entre les deux \ consécutives

PS : Ma mise en forme du texte lors de l'édition est horrible 
Dernière édition: il y a 2 ans 10 mois par ericlm128.

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

Plus d'informations
il y a 2 ans 10 mois #30921 par witness
Réponse de witness sur le sujet Fractionnement chaine caractère

En faisant divers tests en modifiant le [-1] j'obtiens:
[0] = s202-01:
[1] = rien
[2] = server
[3] = imp-s202

On peut mettre [3] plutôt que [-1] du coup ?

Pourquoi quand je mets [1] ça ne me renvoie rien ? J'aurais pensé qu'à la position [1] du tableau il y aurait la deuxième partie du fractionnement, vu que l'index commence à la position [0] ?
Tout parait normal, il faut bien comprendre qu'il divise la chaine de caractère en tableau sur chaque caractère \

Je vais schématiser si j'y arrive :
s202-01:\\server\imp-s202 -> Index0{s202-01:}\Index1{}\Index2{server}\Index3{imp-s202}
 
Le vide de l'index 1 est donc le vide entre les deux \ consécutives

PS : Ma mise en forme du texte lors de l'édition est horrible 


Salut ericlm128,

Effectivement, ça parait normal.

Merci.

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

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