J'ai utilisé le code suivant pour afficher les résultats JSON, mais il faut maintenant modifier le script pour afficher la sortie au lieu des côtés côte à côte. J'ai essayé un script comme ci-dessous, mais je ne peux pas que je ne puisse pas sembler le faire pour faire ce que je veux.
Ma question est la suivante: p>
Je veux supprimer Je dois modifier le script pour afficher la sortie de ma souhaité au lieu des côtés côte à côte. P>
li>
ul> Voici mon script: p> sortie: p> ma sortie souhaitée: p> || code> avant le dernier support.
si (shexpmatch (hôte, "* .lync.com") || shexpmatch (hôte, "* .teams.microsoft.com") || shexpmatch (hôte, "équipes.microsoft.com") ||) ||) code> En conséquence, ce sera
si (shexpmatch (hôte, "* .lync.com") || shexpmatch (hôte, "* .teams.microsoft.com") || shexpmatch (hôte, "Teams.Microsoft.com")) Code> P>
li>
3 Réponses :
# EXAMPLE prepare begin $urls = @( 'microsoft.com', '*.microsoft.com', 'teams.microsoft.com', '*.teams.microsoft.com') # EXAMPLE prepare End $urlLines = $urls | ForEach-Object { return $_.Trim() } | ForEach-Object { if($_.StartsWith('*.')) { return "shExpMatch(host, '$($_)')" } else { return "host == '$($_)'" }} $innerIf = [String]::Join("`r`n" + (' ' * 8) + "|| ", $urlLines) #// $txt_proxypacText += " if ($($innerIf))" Write-Host " if ($($innerIf))" # Output: # if (host == "microsoft.com" # || shExpMatch(host, "*.microsoft.com") # || host == "teams.microsoft.com" # || shExpMatch(host, "*.teams.microsoft.com"))
J'ai gagné cette méthode de compteur simple: a probablement besoin de quelques rangements avec les caractères d'onglet. P> P>
Je ferais l'utilisation d'une chaîne ici avec un ensemble préalable de sortie: p> une note avant: vous utilisez un Pour l'instant, je suppose que vous souhaitez obtenir uniquement le service avec l'identifiant correspondant au shexpmatch (..) code> lignes.
L'utilisation qui vous soulage également des citations de doublage et des concaténations à chaîne en utilisant
+ = code>
Comme demandé, je pense que la partie supérieure du code, où vous collectez les URL dans une arracheListe peut être faite beaucoup plus facile. p> daimfilter Variable avec une chaîne
"12" code>.
Dans ce cas, vous pouvez probablement mieux utiliser l'opérateur -eq code> au lieu de l'opérateur
-tri code> qui a plus d'utilisation pour filtrer avec des caractères génériques (c.-à-d.
"12 *" code>). p>
"12" code> exactement. P>
$url = "https://endpoints.office.com/endpoints/worldwide?noipv6&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7"
$filter = 12
# get an array of urls from the service(s) that get through the filter
$urls = ((Invoke-WebRequest $url | ConvertFrom-Json) | Where-Object { $_.id -eq $filter }).urls | Select-Object -Unique
Merci Theo, j'ai une question. Je ne veux pas utiliser ces lignes `Fonction Add_url ($ URL) {if (! $ URLS.Contains ($ URL)) {$ URLS.Ajouter ($ URL); }} foreach ($ service en $ services) {foreach ($ URL en $ service.urls) {add_url ($ URL); }} `Y a-t-il un script alternatif? Que recommandes-tu?
@Arbelac S'il vous plaît voir la réponse modifiée. Avec cela, vous n'avez pas à jouer avec une arracheListe et vous n'avez pas besoin d'une fonction d'assistance. Acclamations!
shexpmatch (hôte, "équipes.microsoft.com") - Pourquoi utiliser ShexPMatch ici? Il suffit d'utiliser host == "équipes.microsoft.com"