Come controllare l'inizio di una stringa utilizzando PowerShell

  1. Utilizzare l’operatore logico -like per controllare l’inizio di una stringa in PowerShell
  2. Utilizzare l’operatore logico -clike per controllare l’inizio di una stringa in PowerShell
  3. Utilizzare la funzione StartsWith() per controllare l’inizio di una stringa in PowerShell
  4. Confronto con la Sottostringa per controllare l’inizio di una stringa in PowerShell
  5. Conclusione
Come controllare l'inizio di una stringa utilizzando PowerShell

Potrebbero esserci casi in cui ci imbattiamo in un caso d’uso che può richiedere funzionalità per controllare se una variabile stringa inizia con un carattere o una stringa. Controllare se una stringa inizia con un carattere o una stringa specifici è una pratica comune quando si scrivono script ed è anche ragionevolmente semplice quando scritto in Windows PowerShell.

Questo articolo dimostrerà come controllare l’inizio di una variabile stringa utilizzando diversi metodi in Windows PowerShell.

Utilizzare l’operatore logico -like per controllare l’inizio di una stringa in PowerShell

In PowerShell, l’operatore logico -Like è uno strumento potente per il pattern matching. Quando viene utilizzato per controllare l’inizio di una stringa, consente confronti flessibili basati su caratteri jolly.

Per impostazione predefinita, l’operatore -Like ignora l’istruzione che distingue il maiuscolo dal minuscolo. Tuttavia, se utilizziamo operatori logici, deve essere accompagnato da un carattere jolly asterisco (*).

Codice:

$strVal = 'Hello World'
if ($strVal -like 'hello*') {
    Write-Host "Your string starts with hello."
}
else {
    Write-Host "Your string does not start with hello."
}

Output:

Your string starts with hello.

Nel codice, inizializziamo una variabile stringa, $strVal = 'Hello World'. Utilizziamo quindi l’operatore -like per verificare se la stringa ($strVal) inizia con il prefisso 'hello'.

L’operatore -like consente il pattern matching utilizzando caratteri jolly, e in questo caso, l’asterisco (*) rappresenta zero o più caratteri. L’istruzione condizionale valuta se la stringa corrisponde al modello 'hello*'.

In questo caso, la condizione è vera e l’output è La tua stringa inizia con hello.

Utilizzare l’operatore logico -clike per controllare l’inizio di una stringa in PowerShell

L’operatore -clike in PowerShell viene utilizzato per eseguire un confronto di stringhe che distingue il maiuscolo dal minuscolo. Controlla se una stringa corrisponde a un modello specificato, simile all’operatore -like, ma fa distinzione tra maiuscole e minuscole.

Ciò significa che l’operatore -clike restituirà True solo se il caso dei caratteri nella stringa corrisponde esattamente al caso dei caratteri nel modello. Possiamo utilizzare l’operatore -cLike per eseguire un confronto che distingue il maiuscolo dal minuscolo.

Codice:

$strVal = 'Hello World!'
if ($strVal -clike 'h*') {
    Write-Host "Your string starts with lowercase h."
}
else {
    Write-Host "Your string starts with uppercase H."
}

Output:

Your string starts with uppercase H.

Nel codice sopra, inizializziamo una variabile stringa, $strVal, con il valore 'Hello World!'. Utilizziamo l’operatore -clike, che viene utilizzato per il confronto di stringhe che distingue il maiuscolo dal minuscolo, per controllare se la stringa inizia con la lettera minuscola 'h'.

L’istruzione condizionale valuta se la stringa corrisponde al modello 'h*' in modo sensibile al maiuscolo. Poiché la condizione è falsa, indicando che la stringa inizia con una 'H' maiuscola, restituiamo La tua stringa inizia con H maiuscola.

Ricorda, l’operatore -clike è sensibile al caso, quindi non farà corrispondere le stringhe se il caso dei caratteri non corrisponde esattamente. Se vogliamo eseguire un confronto senza distinzione tra maiuscole e minuscole, possiamo utilizzare l’operatore -like.

Utilizzare la funzione StartsWith() per controllare l’inizio di una stringa in PowerShell

Possiamo anche utilizzare la funzione di estensione delle stringhe del framework .NET chiamata StartsWith() per controllare se una stringa inizia con un insieme di caratteri.

La funzione StartsWith() in PowerShell è un metodo per verificare se una stringa inizia con un prefisso specificato. La funzione StartsWith() è un metodo integrato per le stringhe in PowerShell che restituisce un valore booleano che indica se la stringa fornita inizia con la sottostringa specificata.

Codice:

$strVal = 'Hello World!'
if ($strVal.StartsWith('Hello')) {
    Write-Host 'Your string starts with hello.'
}
else {
    Write-Host 'Your string does not start with hello.'
}

Output:

Your string starts with hello.

Nel codice sopra, verifichiamo se la variabile stringa $strVal inizia con 'Hello' utilizzando il metodo StartsWith(). Poiché la condizione è vera, restituiamo La tua stringa inizia con hello.

La funzione StartsWith accetta anche un altro argomento che possiamo utilizzare per controllare i caratteri sensibili al caso. Questo argomento è CurrentCultureIgnoreCase.

Utilizzeremo il seguente metodo se vogliamo eseguire un confronto sensibile al maiuscolo.

Codice:

$strVal = 'Hello world'
if ($strVal.StartsWith('hello', 'CurrentCultureIgnoreCase')) {
    Write-Host 'True'
}
else {
    Write-Host 'False'
}

Output:

True

Nel codice, verifichiamo se la variabile stringa $strVal inizia con 'hello' in modo insensibile al caso utilizzando il metodo StartsWith() con il parametro 'CurrentCultureIgnoreCase'. Poiché la condizione è vera, restituiamo True.

Confronto con la Sottostringa per controllare l’inizio di una stringa in PowerShell

In questo approccio, viene impiegata la funzione Substring() per confrontare un prefisso specificato con la parte iniziale di una data stringa. Questo confronto aiuta a determinare se la stringa inizia con la sequenza di caratteri predefinita.

In PowerShell, il metodo Substring consente di estrarre una porzione da una stringa basata sull’indice di partenza e sulla lunghezza specificati. Utilizzando questo metodo, possiamo acquisire una sottostringa dalla stringa originale e quindi confrontarla con un prefisso desiderato per verificare se la stringa inizia con quella specifica sequenza.

Sintassi di base:

$substringToCompare = $strVal.Substring(0, $prefix.Length)

Parametri:

  • $strVal - Questa è la variabile che contiene la stringa originale da cui vogliamo estrarre una sottostringa.
  • 0 - Lo 0 è l’indice di partenza.
  • $prefix.Length - Questa è la lunghezza della sottostringa da estrarre. Nel nostro esempio, è la lunghezza del prefisso che vogliamo controllare.
  • $substringToCompare - Questa è una variabile che memorizza il risultato dell’operazione Substring. Conterrà la sottostringa estratta dalla stringa originale.

La sintassi sopra crea essenzialmente una sottostringa dalla stringa originale, partendo dall’inizio, con una lunghezza pari alla lunghezza del prefisso specificato.

Codice:

$strVal = 'Hello World!'
$prefix = 'Hello'

if ($strVal.Substring(0, $prefix.Length) -eq $prefix) {
    Write-Output "String starts with $prefix"
}
else {
    Write-Output "String does not start with $prefix"
}

Output:

String starts with Hello

Nel codice, abbiamo una variabile stringa, $strVal = 'Hello World!' e un prefisso, $prefix = 'Hello'. Utilizziamo il metodo Substring() per estrarre una porzione della stringa originale a partire dall’indice 0 con una lunghezza identica alla lunghezza del prefisso.

Lo script quindi confronta questa sottostringa estratta con il prefisso specificato utilizzando l’operatore -eq. Poiché la condizione è vera, indicando che la stringa inizia con 'Hello', restituiamo La stringa inizia con Hello.

Conclusione

In conclusione, questo articolo ha dimostrato vari metodi per controllare l’inizio di una variabile stringa in Windows PowerShell. Abbiamo esplorato l’uso dell’operatore logico -like per il pattern matching, mostrando la sua flessibilità con i caratteri jolly.

Inoltre, ci siamo addentrati nell’operatore logico -clike per confronti sensibili al caso. Inoltre, abbiamo coperto la funzione StartsWith(), utilizzando sia controlli sensibili al caso che insensibili al caso per determinare se la stringa inizia con un prefisso specificato.

Infine, abbiamo esaminato la funzione Substring() come approccio alternativo, illustrando la sua applicazione nel confronto di una sottostringa con una sequenza predefinita e restituendo risultati basati sulla valutazione. Questi metodi offrono versatilità per diversi casi d’uso, migliorando le capacità di confronto delle stringhe negli script PowerShell.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Articolo correlato - PowerShell String