Question
Recherche dans un fichier texte
- Doni
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 25
- Remerciements reçus 0
il y a 10 ans 4 mois #20384
par Doni
Recherche dans un fichier texte a été créé par Doni
Bonjour,
J'ai un batch pour faire une recherche d'une valeur dans un fichier texte que j'essaye de mettre en powershell
Batch:
FIND /C \"CentralManagement\" c:\file1.txt
echo %errorlevel%
IF %errorlevel% equ 1 goto ERROR
goto OK
:ERROR
echo CentralManagement : Status NOK ! >>c:\file2.txt
:OK
Powershell:
$Services= \"CentralManagement\"
$ErrorServices= Get-Content D:\file1.txt |where {$_ -eq $Services}
If ($ErrorServices -eq 0)
{Set-Content -Path D:\file2.txt -Value \"CentralManagement\"}
Apparemment je bloque sur la recherche, si quelqu'un aurait une idée.
Merci d'avance pour vos réponses.
J'ai un batch pour faire une recherche d'une valeur dans un fichier texte que j'essaye de mettre en powershell
Batch:
FIND /C \"CentralManagement\" c:\file1.txt
echo %errorlevel%
IF %errorlevel% equ 1 goto ERROR
goto OK
:ERROR
echo CentralManagement : Status NOK ! >>c:\file2.txt
:OK
Powershell:
$Services= \"CentralManagement\"
$ErrorServices= Get-Content D:\file1.txt |where {$_ -eq $Services}
If ($ErrorServices -eq 0)
{Set-Content -Path D:\file2.txt -Value \"CentralManagement\"}
Apparemment je bloque sur la recherche, si quelqu'un aurait une idée.
Merci d'avance pour vos réponses.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 4 mois #20387
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Recherche dans un fichier texte
Salut,
Doniangel écrit:
[code:1]Get-Command -Noun String[/code:1]
Utilise Select-String :
[code:1]Get-Help Select-String -Full[/code:1]
Doniangel écrit:
On peut rechercher les cmdlets de gestion de chaine de caractères (String)Apparemment je bloque sur la recherche, si quelqu'un aurait une idée.
[code:1]Get-Command -Noun String[/code:1]
Utilise Select-String :
[code:1]Get-Help Select-String -Full[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Doni
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 25
- Remerciements reçus 0
il y a 10 ans 4 mois #20389
par Doni
Réponse de Doni sur le sujet Re:Recherche dans un fichier texte
Merci pour ta réponse,
J'ai essayé sa:
Get-Content c:\file1.txt |Select-String \"CentralManagement\"
Sa marche mais il m'affiche tout le contenu du fichier, alors que ce que je souhaiterai c'est que la commande ne m'affiche que \"CentralManagement\".
Une précision mon fichier file1.txt est composé de plusieurs nom de service à la suite et sans espace.
Une idéee???
J'ai essayé sa:
Get-Content c:\file1.txt |Select-String \"CentralManagement\"
Sa marche mais il m'affiche tout le contenu du fichier, alors que ce que je souhaiterai c'est que la commande ne m'affiche que \"CentralManagement\".
Une précision mon fichier file1.txt est composé de plusieurs nom de service à la suite et sans espace.
Une idéee???
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 4 mois #20390
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Recherche dans un fichier texte
Doniangel écrit:
[code:1]
#Un nom de service par ligne
(get-service).name > c:\temp\test.txt
$r=gc c:\temp\test.txt|Select-String -Pattern 'WinRM'
$r|fl *
# IgnoreCase : True
# LineNumber : 188
# Line : WinRM
# Filename : InputStream
# Path : InputStream
# Pattern : WinRM
# Context :
# Matches : {WinRM}
$r.Line
#WinRM
#Un nom de service par ligne
\"$((get-service).name)\" > c:\temp\test2.txt
$r=gc c:\temp\test2.txt|Select-String -Pattern 'WinRM'
$r.Line
#AdobeARMservice AdobeFlashPlayerUpdateSvc AeLookupSvc ...
$r.matches.value
#WinRM
$r=gc c:\temp\test2.txt|Select-String -Pattern 'toto'
$r|fl *
$null -eq $r
#True
[/code:1]
Oui, lire la documentation et étudier les objet émis par le cmdlet, le reste coule de source :Une idéee???
[code:1]
#Un nom de service par ligne
(get-service).name > c:\temp\test.txt
$r=gc c:\temp\test.txt|Select-String -Pattern 'WinRM'
$r|fl *
# IgnoreCase : True
# LineNumber : 188
# Line : WinRM
# Filename : InputStream
# Path : InputStream
# Pattern : WinRM
# Context :
# Matches : {WinRM}
$r.Line
#WinRM
#Un nom de service par ligne
\"$((get-service).name)\" > c:\temp\test2.txt
$r=gc c:\temp\test2.txt|Select-String -Pattern 'WinRM'
$r.Line
#AdobeARMservice AdobeFlashPlayerUpdateSvc AeLookupSvc ...
$r.matches.value
#WinRM
$r=gc c:\temp\test2.txt|Select-String -Pattern 'toto'
$r|fl *
$null -eq $r
#True
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.096 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Recherche dans un fichier texte