Question Recherche dans un fichier texte

Plus d'informations
il y a 10 ans 4 mois #20384 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.

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

Plus d'informations
il y a 10 ans 4 mois #20387 par Laurent Dardenne
Salut,
Doniangel écrit:

Apparemment je bloque sur la recherche, si quelqu'un aurait une idée.

On peut rechercher les cmdlets de gestion de chaine de caractères (String)
[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.

Plus d'informations
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???

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

Plus d'informations
il y a 10 ans 4 mois #20390 par Laurent Dardenne
Doniangel écrit:

Une idéee???

Oui, lire la documentation et étudier les objet émis par le cmdlet, le reste coule de source :
[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
Propulsé par Kunena