Question Fonction Substring

Plus d'informations
il y a 3 semaines 18 heures #34567 par DEMINFO
Fonction Substring a été créé par DEMINFO
Bonjour,
J'ai le problème suivant :avec Substring :
Échec lors de l’appel de la méthode, car [System.IO.FileInfo] ne contient pas de méthode nommée « Substring ».
Au caractère P:\BLATMAILS\OUTILS\EDIFAC.ps1:29 : 7
+       $CodeSociete=$CodeSociete.Substring(3,1)
+       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation : (:) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound


Soc= AUCG2401399

Le script est le suivant :
#Renommage des Fichiers
Set-Location $RepOutPutATraiter
$LFic=Get-ChildItem -Recurse
if ($LFic -ne $null)
  {
   for ($ific=0 ; $ific -lt $LFic.Count ; $ific++)
     {
      $DateHeure=Get-Date -Format "yyyyMMdd_HHmmss"
      $YYYYMMDD=$DateHeure.Substring(0,8)
      $HHMMSS=$DateHeure.Substring(9,6)
      $CodeSociete=$LFic[$ific]
      $CodeSociete=$CodeSociete.Substring(3,1)
      Write-Host "Soc="$CodeSociete
      switch ($CodeSociete)
        {
         "G"     {$Prefixe="GMT"}
         "S"     {$Prefixe="SOC"}
         Default {$Prefixe=$null}
        }

Et pourtant $CodeSociete s'affiche bien avec la bonne valeur.
J'ai fait l'essai de mettre la valeur AUCG2401399 dans $CodeSociete="AUCG2401399" et ça fonctionne très bien.

D'avance merci pour votre aide

D'avance merci pour votre aide

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

Plus d'informations
il y a 2 semaines 4 jours #34571 par Fabien
Réponse de Fabien sur le sujet Fonction Substring
Bonjour DEMINFO,

La variable ($codeSociete) que tu essayes de modifier contient plusieurs éléments : (Mode, LastWriteTime, Length, Name).
Pour pouvoir modifier le Name, il faut le préciser comme ceci :
$CodeSociete.Name.Substring(3,1)
Les utilisateur(s) suivant ont remercié: DEMINFO

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

Plus d'informations
il y a 2 semaines 4 jours #34574 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Fonction Substring
Bonjour Deminfo,

Effectivement, comme le souligne Fabien, l'objet sur lequel tu essaies d'appliquer la méthode SubString n'est pas une chaine de caractères mais un fichier. Il faut donc identifier et choisir la propriété qui contient le nom de ton fichier. 

Si tu choisis Name, tu auras le nom court et si tu choisis la propriété FullName, tu obtiendras le chemin complet (absolu) vers ton fichier. A toi de choisir la bonne propriété selon ton contexte.

Arnaud

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 ?
Les utilisateur(s) suivant ont remercié: DEMINFO

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

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