Flash info

"Those who forget to script are doomed to repeat their work."

Jeffery Hicks (PowerShell MVP)

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
FERRARA
Utilisateur

PowerShelleur Débutant
Messages: 6
graphgraph
Karma: 0  
Trouver un fichier comportant des caractères ? - 27/09/18 14:24 Bonjour,

Je mis perd un peu dans les fonctions de -replace et autre sur une chaine de caractères.
Voici mon problème

Je dois trouver un fichier et executer notepad sur le ou les fichiers trouvés. je ne connais pas le nom du fichier exact mais je sais que son nom comporte des ?

Quelqu'un connait la solution ? Merci d'avance

Voici mon code :
$FICHIER = 'D:ftprecu?_tes?_tr?ns.txt'
echo "Nom : $FICHIER"

$a="a"
$b="b"
$c="c"
$d="d"
$e="e"
$f="f"
$g="g"
$h="h"
$i="i"
$j="j"
$k="k"
$l="l"
$m="m"
$n="n"
$o="o"
$p="p"
$q="q"
$r="r"
$s="s"
$t="t"
$u="u"
$v="v"
$w="w"
$x="x"
$y="y"
$z="z"
$replacements = $a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l,$m,$n,$o,$p,$q,$r,$s,$t,$u,$v,$w,$x,$y,$z
cls

foreach ($r in $replacements) {


echo "la lettre de replacé: $r"
$Z_string = $FICHIER -replace "^.(.*)", "$([char]::ToUpper($FICHIER[0]))`$1"

echo "variable : $Z_string"

$ZZZ=Test-Path -Path $Z_string
if ($ZZZ -eq $True) {
echo "Fichier présent : $Z_string" }



}
  | | L'administrateur a désactivé l'accés public en écriture.
unfam0us
Utilisateur

PowerShelleur Amateur
Messages: 67
graphgraph
Karma: 2  
Re:Trouver un fichier comportant des caractères ? - 27/09/18 14:42 Ca ressemble a des devoirs d'école, c'est juste?

Si je comprends bien ton problème tu as un fichier dont tu ne connais qu'une partie du nom et qui contient des lettres mystères ? Peux-tu être plus précis sur le but à atteindre et les contraintes de ton problème?
  | | L'administrateur a désactivé l'accés public en écriture.
FERRARA
Utilisateur

PowerShelleur Débutant
Messages: 6
graphgraph
Karma: 0  
Re:Trouver un fichier comportant des caractères ? - 27/09/18 14:47 Oui , très très novice dans le PS. Merci du coup de main.

le but est :

- de trouver le fichier
- puis de lancer un executable avec le nom du fichier en paramètre ( notepad "^FICHIER" par exemple)
  | | L'administrateur a désactivé l'accés public en écriture.
FERRARA
Utilisateur

PowerShelleur Débutant
Messages: 6
graphgraph
Karma: 0  
Re:Trouver un fichier comportant des caractères ? - 28/09/18 07:36 Bonjour,

Je sèche toujours. J'ai parcouru les scripts à disposition sur le forum mais je ne vois rien qui puisse me faire avancer.
Quelqu'un à la solution ?
Merci

Message édité par: FERRARA, à: 28/09/18 08:57
  | | L'administrateur a désactivé l'accés public en écriture.
6ratgus
Utilisateur

PowerShelleur Platinum
Messages: 1539
graphgraph
Karma: 112  
Re:Trouver un fichier comportant des caractères ? - 28/09/18 13:54 salut FERRARA

Alors pour cette question :
puis de lancer un executable avec le nom du fichier en paramètre ( notepad "^FICHIER" par exemple)c'est simple tu met dans ton script :
Code:

 $monfichier "C:\dossier\fichier.txt" notepad $monfichier



le nom d'un fichier ne peut contenir le point d'interrogation "?"
mais il se peut que tu a voulue afficher un autre caractère et que l'éditeur du forum ne l'affiche pas

pour trouver un fichier a tu :
Code:

 Get-ChildItem "d:\ftprecu*.txt" -Recurse


il n'existe pas de commande pour trouver un fichier avec plusieurs caractères qui manque et qui ne ce suivent pas -> 'ftprecu?_tes?_tr?ns.txt'
dans ce cas on, on fais une recherche avec le debut du mot puis on compare la liste des résultats à ce que devrait ressembler le mot entier

Message édité par: 6ratgus, à: 1/10/18 08:25
  | | L'administrateur a désactivé l'accés public en écriture.
FERRARA
Utilisateur

PowerShelleur Débutant
Messages: 6
graphgraph
Karma: 0  
Re:Trouver un fichier comportant des caractères ? - 28/09/18 14:43 Salut 6ratgus,
tout d'abord merci de ton aide.

Je viens de scripter :
$VAR= 'D:ftprecu*.txt'
$FIC=Get-ChildItem $VAR -Recurse
$RC=$?
if ($RC -eq $True) {Write-Host "Fichier est trouvé : $FIC"}
if ($RC -eq $False) { Write-Host "Fichier est non trouvé" }

Le retour est toujours à True même si il est absent.
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5519
graph
Karma: 204  
Re:Trouver un fichier comportant des caractères ? - 28/09/18 19:22 Salut,
j'ai un peu de mal à comprendre l'objectif, à moins que ce soit de simuler le globbing/joker d'un File System.
Une recherche basée regex :
Code:

 #$FICHIER = 'D:\ftp\recu?_tes?_tr?ns.txt'    $Pattern 'D:\\ftp\\recu[A-Za-z]_tes[A-Za-z]_tr[A-Za-z]ns\.txt' $F='D:\ftp\recup_test_trans.txt' $f -match $Pattern #$true $F='D:\ftp\recu1_test_trans.txt' $f -match $Pattern #$false


Une autre utilisant le globbing de Powershell (insensible à la casse) :
Code:

 cd  C:\temp "test"recup_test_trans.txt "test"recu1_test_trans.txt dir 'recu[A-Z]_tes[A-Z]_tr[A-Z]ns.txt' #    Directory: C:\temp # # #Mode                LastWriteTime         Length Name #----                -------------         ------ ---- #-a----       28/09/2018     20:13             14 recup_test_trans.txt

Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
6ratgus
Utilisateur

PowerShelleur Platinum
Messages: 1539
graphgraph
Karma: 112  
Re:Trouver un fichier comportant des caractères ? - 1/10/18 08:24 salut Laurent

je suis un peu d'accord avec ta remarque

par contre ton deuxième exemple ne récupère qu'un seul des deux fichiers, c'est normal ?

le but n'ai pas d'avoir les deux ?
  | | L'administrateur a désactivé l'accés public en écriture.
FERRARA
Utilisateur

PowerShelleur Débutant
Messages: 6
graphgraph
Karma: 0  
Re:Trouver un fichier comportant des caractères ? - 1/10/18 10:10 Bonjour,
Nouvelle semaine et weekend reposant. j'ai relu vos réponses. Merci à tous cela m'a permis d'avancer.
j'ai écrit ce code et il répond à ma demande :
$VAR= 'D:ftpr?cu?.txt'
$FIC = $VAR.replace('?',"*")

dir $FIC | ForEach-Object {$fichier = $_

Write-Host $fichier
notepad $fichier
}
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5519
graph
Karma: 204  
Re:Trouver un fichier comportant des caractères ? - 1/10/18 18:32 Salut 6ratgus
6ratgus écrit:

le but n'ai pas d'avoir les deux ?

A priori non vu les tests effectués à l'origine.
L'étendue étant A-Z.

Message édité par: Laurent Dardenne, à: 1/10/18 18:32
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
FERRARA
Utilisateur

PowerShelleur Débutant
Messages: 6
graphgraph
Karma: 0  
Re:Trouver un fichier comportant des caractères ? - 12/10/18 09:35 Merci à tous !
  | | L'administrateur a désactivé l'accés public en écriture.
© 2018 PowerShell-Scripting.com