sintassi:
$variabile_stringa.metodo(argomenti)
[System.String]::metodo(argomenti) .NET
$variabile_stringa -metodo argomenti
sintassi
$stringa.Replace("parte_testo_da_rimpiazzare","testo_destinazione")
esempio: sostutisco testo e visualizzo variabili
$stringa1 = "ciao mamma"
$stringa2 = $stringa1.Replace("mamma","papà")
$stringa1
$stringa2
ciao mamma (la variabile $stringa1 non modifica il suo valore con .Replace)
ciao papà
-replace
rimpiazza del testo con un altro in una variabile direttamente
si usa nei comandi compostisintassi
$nome -replace 'testo_origine', 'testo_destinazione'
se vuoi cancellare in un testo il testo contenuto in un'altra variabile si usa
$nome -replace [regex]::escape($variabile con testo da cancellare)
esempio: creo una pagine htnl con tabella rossa e verde a seconda dello stato
per ogni riga passata se troviamo "*Running*" allora inserisci il background verde, altrimenti rosso
Get-Service | ConvertTo-HTML -Property Name,Status | foreach
{if ($_ -like "*<td>Running<td>*") {$_ -replace "<tr>", "<tr bgcolor='green'>"}} > "C:\Users\AC404\Downloads\Get-Service.html"
else {$_ -replace "<tr>", "<tr bgcolor='red'>"}
carattere escape
per poter indicare all'interno delle stringhe un carattere che ha una certa funzione si usa il carattere escape \esempio: creo una directory per ciascuna estensione dei file trovati
il problema sta nel togliere il punto . dalla estensione per non creare directory con il . come primo carattere del nome
Get-ChildItem *|
Select-Object Extension -Unique|
foreach{$viariabile = $_.Extension -replace '\.',''}
if($viariabile -ne "ps1" -And $viariabile -ne ""){ escludo le esenzioni vuote e ps1New-Item $viariabile -type Directory -Force}
- .TrimEnd() togli gli spazi finali
- .TrimStart() togli gli spazi iniziali
esempio: resituuisce il nome del file senza estensione e senza path
$finale = $stringa.Substring($stringa.LastIndexOf("\"), ($stringa.Substring($stringa.LastIndexOf("\"))).IndexOf("."))
sintassi
-join ("...", "...", "...", ...)
("...", "...", ...) -join "separatore"
esempi
-join ("Hello" , "World.", "This" , "is" , "a" , "beautiful" , "day.")
HelloWorld.Thisisabeautifulday
("Hello" , "World.", "This" , "is" , "a" , "beautiful" , "day.") -join " "
Hello World. This is a beautiful day
esempio: converto una data in stringa formato dd/MM/yyyy
([DateTime]$variabile).ToString('dd/MM/yyyy') → 03/03/2022