variables powershell spaces stripping

variables - Eliminando espacios de una entrada variable usando PowerShell 4.0



spaces stripping (5)

El operador Replace significa Reemplazar algo con otra cosa ; No se confunda con la funcionalidad de eliminación.

También debe enviar el resultado procesado por el operador a una variable oa otro operador. Ni .Replace() , ni -replace modifican la variable original.

Para eliminar todos los espacios, use '' Reemplazar cualquier símbolo de espacio con una cadena vacía ''

$string = $string -replace ''/s'',''''

Para eliminar todos los espacios al principio y al final de la línea, y reemplazar todos los espacios de doble y más espacios o símbolos de tabulación al símbolo de la barra espaciadora, use

$string = $string -replace ''(^/s+|/s+$)'','''' -replace ''/s+'','' ''

o el método System.String más nativo

$string = $string.Trim()

Se prefiere la expresión regular, porque '' '' significa solo el símbolo de "barra espaciadora", y ''/s'' significa "barra espaciadora, pestaña y otros símbolos de espacio". Tenga en cuenta que $string.Replace() reemplaza a ''Normal'', y $string -replace reemplaza a RegEx, que es más pesado pero más funcional.

Tenga en cuenta que RegEx tiene algunos símbolos especiales como puntos ( . ), Tirantes ( []() ), barras ( / ), sombreros ( ^ ), signos matemáticos ( +- ) o signos de dólar ( $ ) que deben escaparse. ( ''my.space.com'' -replace ''/.'',''-'' => ''my-space-com'' . Debe usarse un signo de dólar con un número (por ejemplo, $1 ) en la parte derecha con cuidado

''2033'' -replace ''(/d+)'',$( ''Data: $1'') Data: 2033

ACTUALIZACIÓN: También puede usar $str = $str.Trim() , junto con TrimEnd() y TrimStart() . Lea más en la página de MSDN System.String .

Ya probé algunas cosas, pero no parecen funcionar por alguna razón.

Básicamente, lo que estoy tratando de hacer es que un usuario ingrese un valor mediante el cmdlet "Read-host" y luego lo elimine de cualquier espacio.

Lo intenté:

$answer = read-host $answer.replace('' '' , ''""'')

Y:

$answer = read-host $answer -replace ('' '')

Probablemente me esté perdiendo algo realmente obvio, pero si alguien pudiera ayudarme o mostrarme una manera más fácil de lograrlo, se lo agradecería.

Iba a canalizar la variable a un comando y la eliminaría de esa manera, pero ninguno de los ejemplos que he visto funciona, aunque parecen mucho más fáciles.


Puedes usar:

$answer.replace('' '' , '''')

o

$answer -replace " ", ""

Si desea eliminar todos los espacios en blanco puede utilizar:

$answer -replace "/s", ""


Si la cadena es

$STR = ''HELLO WORLD''

y desea eliminar el espacio vacío entre ''HOLA'' y ''MUNDO''

$STR.replace('' '','''')

replace toma la cadena y reemplaza el espacio en blanco con una cadena vacía (de longitud 0), en otras palabras, el espacio en blanco simplemente se elimina.


También tiene los métodos Trim , TrimEnd y TrimStart de la clase System.String . El método de recorte eliminará los espacios en blanco (con un par de peculiaridades de Unicode) de la parte anterior y posterior de la cadena, mientras le permite especificar opcionalmente los caracteres que se eliminarán.

#Note there are spaces at the beginning and end Write-Host " ! This is a test string !%^ " ! This is a test string !%^ #Strips standard whitespace Write-Host " ! This is a test string !%^ ".Trim() ! This is a test string !%^ #Strips the characters I specified Write-Host " ! This is a test string !%^ ".Trim(''!'','' '') This is a test string !%^ #Now removing ^ as well Write-Host " ! This is a test string !%^ ".Trim(''!'','' '',''^'') This is a test string !% Write-Host " ! This is a test string !%^ ".Trim(''!'','' '',''^'',''%'') This is a test string #Powershell even casts strings to character arrays for you Write-Host " ! This is a test string !%^ ".Trim(''! ^%'') This is a test string

TrimStart y TrimEnd funcionan de la misma manera, solo recortando el inicio o el final de la cadena.


Usted está cerca. Puedes eliminar el espacio en blanco usando el método de replace esta manera:

$answer.replace('' '','''')

No debe haber espacios ni caracteres entre el segundo conjunto de comillas en el método de reemplazo (reemplazar el espacio en blanco por nada).