a écrit cette petite partie du code pour vérifier si le fichier existe et contient le modèle de chaîne mais, il ne fait pas de quoi il devrait. Tout d'abord, il reconnaît partiellement que le chemin existant et deuxièmement, il reconnaît partiellement le modèle dans le fichier TXT. Pouvez-vous m'aider s'il vous plaît? P> Je soupçonne que Patter est partiellement reconnaissable sur le serveur multiplier. (Espaces blancs, etc.), même comment sauter cela? p> Etrange pense que cela ne voit pas que le motif ne voit pas que le modèle est manquant dans le fichier , ça retourne
Notinscope à la place vérifie
Ci-dessous fichier sans ce motif p> et ci-dessous, vous pouvez voir le motif normal p>
4 Réponses :
Concernant le -Path de la cmdlet Select-String, vous devez mettre la valeur entre "": Ceci devrait faire le truc: p>
Etrange pense que cela ne se trouve pas que le modèle est manquant dans le fichier, il renvoie à la place NotScope.
Qu'est-ce que compare_result.txt contient? Vous recherchez actuellement la chaîne "Aucune différence rencontrée" dans votre fichier texte, c'est ce que vous voulez faire? Une fois que votre cmdlet Select-String $ SEL ne contient que des lignes contenant cette chaîne, la cmdlet de test de test est donc peu probable.
Alors, que dois-je faire à la place de test-chemin?
J'ai édité ma réponse pour prendre en compte ce que vous m'avez dit. Est-ce que ça fait ce que tu veux?
S'il vous plaît essayez comme ci-dessous:
Semble étrange ... quel est ce $ selget?
try { $SEL = $null $SEL = Select-String -Path \\$serversPing\c$\Scripts\compare_result.txt -Pattern "no differences encountered" -ErrorAction Stop if ($SEL) { $SoftCheckResult = "ok" } else { $SoftCheckResult = "Verify" } } catch { $ErrorMessage = $_.Exception.Message $FailedItem = $_.Exception.ItemName $SoftCheckResult = "NotInScope" } return $softCheckResult
Puisque vous utilisez pluriel dans Je changerais l'ordre des chèques et commencerais avec Un test pour voir si le fichier existe sur ce serveur ou non: p> J'ai ajouté un $ server code>, je suppose que cette variable provient d'une partie antérieure de votre code et contient une collection de serveurs.
Connexion de test code> dans la boucle de Foreach pour la première fois si Le serveur est en ligne ou non. Si vous avez vérifié cela avant et que la variable code> € / Code> ne contient que des serveurs en ligne et accessibles, vous pouvez ignorer cela. P> P>