Operador y método de reemplazo de PowerShell: sintaxis, ejemplos
Potencia Shell Sustituto se puede utilizar para reemplazar caracteres, cadenas, texto o caracteres especiales. PowerShell tiene uno Sustituto Método y un Sustituto Operador .
Esta Zona S te enseña a usar PowerShell Sustituto Método y Sustituto Operador para realizar varias tareas de reemplazo.
La guía consta de 2 secciones. La primera sección incluye la Sustituto Método con varios ejemplos.
La segunda sección te dice cómo usarlos. Sustituto Operador , también con varios ejemplos.
Explorar temas de publicaciones
avast está ocupando cpu
- Cómo usar el método de reemplazo de PowerShell con múltiples ejemplos
- Sintaxis de PowerShell-Replace-Methode
- Cómo enumerar los métodos en un objeto de PowerShell
- Cómo usar el método de reemplazo de PowerShell para reemplazar un carácter en una cadena
- Cómo usar el método de reemplazo de PowerShell para reemplazar varias cadenas en un archivo de texto
- Cómo usar el método de reemplazo de PowerShell para reemplazar varios caracteres
- Cómo usar el método de reemplazo de PowerShell en la canalización
- Cómo usar el método de reemplazo de PowerShell para reemplazar todas las cadenas después de un carácter
- Cómo usar el método de reemplazo de PowerShell para reemplazar una cadena en un archivo de texto
- Cómo usar el método de reemplazo de PowerShell para reemplazar comillas dobles con comillas simples
- Cómo usar el método de reemplazo de PowerShell para reemplazar la coincidencia exacta
- Uso del método de reemplazo de PowerShell para reemplazar la barra invertida ()
- Cómo reemplazar caracteres de nombre de archivo no válidos en PowerShell
- Cómo usar el operador de reemplazo de PowerShell con múltiples ejemplos
- Sintaxis de PowerShell-Replace-Operators
- Cómo usar el método de sustitución de PowerShell para operar en un carácter en una cadena
- Cómo usar el método de reemplazo de PowerShell para reemplazar varias cadenas en un archivo de texto
- Uso del operador de reemplazo de PowerShell para reemplazar cadenas y caracteres que distinguen entre mayúsculas y minúsculas
- Uso del operador de reemplazo de PowerShell para reemplazar la barra invertida ()
- Referencias y lecturas adicionales
Cómo usar el método de reemplazo de PowerShell con múltiples ejemplos
Como mencioné en la introducción, en esta sección aprenderá cómo usar el método de reemplazo . La sección comienza con la sintaxis del método de reemplazo .
Sintaxis de PowerShell-Replace-Methode
las sintaxis de Sustituto Método es…
|_+_| |_+_|
Las sintaxis son las mismas. La única razón por la que tengo ambos es para ilustrar que puede reemplazar caracteres o cadenas.
La primera sintaxis muestra cómo usar el método Reemplazar de PowerShell para reemplazar caracteres. Sin embargo, la segunda sintaxis muestra cómo reemplazar una cadena.
Cómo enumerar los métodos en un objeto de PowerShell
Mencioné anteriormente que PowerShell tiene un método de reemplazo y un operador. Puede enumerar todos los métodos disponibles en un objeto de PowerShell colocando el objeto en el Obtener miembro Dominio.
Por ejemplo, para encontrar los métodos disponibles en este objeto, ejecute el siguiente comando:
|_+_|El comando devuelve una serie de métodos. destaqué esos Sustituto Método en la captura de pantalla a continuación.
Además, hay otra forma de hacerlo. Obtener miembro Dominio. En lugar de inclinar el objeto hacia el Obtener miembro comando, puede especificar el objeto en el parámetro InputObject de Obtener miembro .
Aquí hay un ejemplo…
|_+_|El resultado también enumera una serie de métodos disponibles en el objeto, incluido el Sustituto Método .
Una última cosa antes de pasar a la siguiente subsección: si observa la columna de descripción del resultado de los dos últimos comandos, tiene la sintaxis del método.
Esto es muy útil ya que le dice cómo usar el método.
Cómo usar el método de reemplazo de PowerShell para reemplazar un carácter en una cadena
Mencioné en la subsección de sintaxis que puede reemplazar caracteres o cadenas. Para darle un ejemplo simple, quiero reemplazar la V en Victor con la letra minúscula v.
Aquí está el comando...
|_+_|Y aquí está el resultado en PowerShell...
Los valores en el método de reemplazo de PowerShell distinguen entre mayúsculas y minúsculas. Los valores se verifican en mayúsculas y minúsculas exactas. Por ejemplo, si intento reemplazar la v pequeña en Victor y reemplazarla con una A, el comando devuelve el mismo resultado.Aquí está el comando que describí en la nota anterior...
|_+_|Cuando ejecuté este comando en PowerShell, devolvió Victor, el objeto original, porque la cadena Victor no contiene una v minúscula.
En el PowerShell Sustituto Operador sección de esta guía, aprenderá que, a diferencia del método Reemplazar, el Sustituto Operador No se consideran mayúsculas y minúsculas.Cómo usar el método de reemplazo de PowerShell para reemplazar varias cadenas en un archivo de texto
Siguiendo las ideas de esta guía, también puede reemplazar varias cadenas en un archivo de texto.
En este ejemplo, tengo un archivo de texto con algunos nombres de servidor. Aquí hay una captura de pantalla del archivo de texto.
Quiero reemplazar el nombre del servidor ITGServer1 con ITGServer4. Además, quiero reemplazar ITGServer2 con ITGServer5 e ITGServer3 con ITGServer6.
Aquí está el script que hace el trabajo...
|_+_|La primera línea del script utilizado Obtener el contenido para importar el contenido del archivo de texto en PowerShell. Luego dirige el resultado para cada objeto .
Finalmente dentro de la para cada objeto Loop usa la variable atemática $_ creada por PowerShell para cada objeto para cada objeto para reemplazar los artículos como se especifica.
Encadené el método de reemplazo de PowerShell. De lo contrario, el script producirá un resultado no deseado.
Para ejecutar el script, cópielo y ejecútelo en PowerShell ISE.
En la última versión del script, PowerShell muestra el resultado en la consola. Puedes escribir la salida pasando los comandos existentes al establecer contenido Dominio.
Aquí está el guión actualizado. Para evitar errores tipográficos, almacené el resultado de la versión anterior del script en una variable. Luego canalicé la variable establecer contenido Dominio.
|_+_|Aquí está la salida del nuevo archivo de texto...
Cómo usar el método de reemplazo de PowerShell para reemplazar varios caracteres
El proceso para reemplazar varias cadenas de caracteres en un archivo de texto es el mismo que reemplazar varios caracteres en una cadena de caracteres. Del ejemplo de la última sección, es mejor encadenar el método Reemplazar.
En este ejemplo, quiero reemplazar la M en el método con T. Además, quiero reemplazar d con D.
Aquí está el comando...
|_+_|Y el resultado en PowerShell...
Cómo usar el método de reemplazo de PowerShell en la canalización
En la última sección, ejecuté este comando sin pasar el Método de cadena al Sustituto Método:
|_+_|Puedo ejecutar el mismo comando, pero esta vez la cadena se pasa al método de reemplazo. Sin embargo, una vez que lo paso a una canalización, necesito llamar a la cadena con la variable de canalización automática $_.
¿Cómo activo permanentemente el bloqueo numérico?
El comando debe cambiarse de la siguiente manera:
|_+_|Como puede ver en la captura de pantalla a continuación, el último comando produce el mismo resultado que el comando en la última subsección...
Cómo usar el método de reemplazo de PowerShell para reemplazar todas las cadenas después de un carácter
En el ejemplo de esta subsección, quiero reemplazar todo después de la última barra invertida en esta cadena, c:programfiles vversion8uninstall.exe, con una cadena vacía.
Estos dos comandos harán el trabajo.
|_+_|El primer comando almacena la cadena en una variable. Luego, el segundo comando usa el método Reemplazar de PowerShell para reemplazar todo lo que está después de la cadena con un espacio.
Efectivamente todo se elimina después. Aquí está el resultado de los comandos..
Cómo usar el método de reemplazo de PowerShell para reemplazar una cadena en un archivo de texto
tengo un archivo de texto llamado Archivo de proceso1.txt . El archivo de texto tiene un valor, AgentSvc, que quiero reemplazar con AgentSvc_New.
Los siguientes comandos completarán la tarea...
|_+_|El primer comando almacena la ruta del archivo en una variable. Además, el segundo comando almacena el valor que quiero encontrar en una variable diferente.
Además, la tercera línea almacena la cadena de reemplazo en una variable diferente. Finalmente, en el último comando, llamo al método Reemplazar en el resultado de Obtener el contenido Dominio.
Luego, dentro del método de reemplazo, uso el valor almacenado en las variables $buscar y $reemplazar. Luego dirige la salida establecer contenido que actualiza el archivo de texto con los nuevos valores.
Después de ejecutar los comandos aquí está el nuevo valor en el archivo de texto.
Cómo usar el método de reemplazo de PowerShell para reemplazar comillas dobles con comillas simples
En esta subsección quiero reemplazar la comilla doble en 234″20.1.2021 con comillas simples. Aquí están los comandos...
nombres divertidos del regimiento bacalao|_+_|
La primera línea almacena la cadena, 234″20.1.2021 en una variable. Luego, en la segunda línea, utilicé el método Reemplazar de PowerShell para reemplazar las comillas dobles en la cadena con comillas simples.
El truco está en aplicar y usar las reglas de cotización de PowerShell. PowerShell usa comillas simples y dobles para especificar una cadena literal.
En este ejemplo, queremos reemplazar las comillas dobles, , en una cadena con comillas simples, , . Pero si recuerda, en el método de reemplazo de PowerShell también necesita comillas para especificar el valor para reemplazar y el nuevo valor.
Entonces, para especificar el valor actual (las comillas dobles) en el comando de reemplazo, encerramos las comillas dobles entre comillas simples – ''.
Además, para especificar el nuevo valor (las comillas simples), escríbalas entre comillas dobles – .
Debido a la presencia de comillas dobles en la cadena original 234″20.1.2021 para almacenar la cadena en una variable, tuve que encerrar la cadena entre comillas simples.
Volviendo a los comandos...
|_+_|Aquí está el resultado en PowerShell...
Tan simple como parece este ejemplo, si no comprende las reglas de citas de PowerShell, tendrá problemas para que PowerShell realice esta tarea.
Cómo usar el método de reemplazo de PowerShell para reemplazar la coincidencia exacta
Esta sección proporciona otro ejemplo del método de reemplazo de PowerShell. Esta vez quiero enseñarte cómo reemplazar una coincidencia exacta en una cadena.
El ejemplo en esta sección es de ese stackoverflow.com Hilo. El usuario que hizo la pregunta quiere reemplazar te en esta cadena. Traje té para mi equipo con café.
Aquí está el comando que hace el trabajo...
|_+_|Y aquí está el resultado del comando en PowerShell...
Uso del método de reemplazo de PowerShell para reemplazar la barra invertida ()
En esta subsección, reemplazaré la barra invertida única () en esta cadena, 23420.1.2021 con doble barra invertida, (\). Aquí está el comando...
|_+_|El resultado en PowerShell...
Como verá en la sección del operador de reemplazo de PowerShell de esta guía, reemplazar una sola barra invertida con el operador de reemplazo no es tan simple.
Cómo reemplazar caracteres de nombre de archivo no válidos en PowerShell
El sistema operativo Windows contiene algunos caracteres que no se pueden usar para nombrar archivos o carpetas. Estos caracteres se conocen comúnmente como caracteres de nombre de archivo no válidos.
Si intenta crear un nombre de archivo con cualquiera de los caracteres, recibirá un mensaje de error.
Entonces, si escribe un script de PowerShell que usa una salida para crear un nombre de archivo, pero esa salida contiene alguno de los caracteres de nombre de archivo no válidos, debe eliminar esos caracteres.
El script que se describe en esta subsección no usa el método de reemplazo de PowerShell. Sin embargo, decidí incluirlo porque creo que aborda un problema único al que se enfrentan la mayoría de los administradores de sistemas.Pasando al ejemplo que discutiré en un momento stackoverflow.com Pregunta. El usuario que publicó la pregunta desea eliminar los caracteres no válidos de una cadena antes de usar la cadena para crear un archivo.
Además, si la cadena contiene espacios, el usuario querrá mantener los espacios en el nombre del archivo.
Observé las soluciones preferidas por varios usuarios. El que tiene la mejor solución fue publicado por Juan Longmuir .
En el ejemplo de John, desea eliminar todos los caracteres de nombre de archivo no válidos en la cadena abc*def.txt. Sin embargo, como solicitó el autor de la pregunta original, quiere mantener los espacios en la cadena.
la configuración no pudo validar la clave del producto
Aquí está el guión de John...
|_+_|En el primer comando, almacena la cadena en una variable. Luego, en la primera parte de la segunda instrucción (antes de la canalización) convierte el $ na me variable a un tipo de datos [char].
El tipo de datos [char] es un carácter Unicode de 16 bits.En la segunda parte del comando, John dirige la salida del tipo de datos convertido [char] a un comando Where-Object. Dentro del bloque de script Where-Object, llama al GetinvalidFileNameChars() método de clase de ruta , [IO.Ruta] .
Luego le dice a PowerShell que solo devuelva valores que no están en el GetinvalidFileNameChars() Método.
Del GetinvalidFileNameChars() El método enumera todos los caracteres de nombre de archivo no válidos.Finalmente, después de eliminar los caracteres de nombre de archivo no válidos, usa PowerShell Join para convertir todos los caracteres en una cadena.
El resultado final es... ¡Los caracteres especiales (caracteres de nombre de archivo no válidos) desaparecieron, pero la cadena se devuelve con los espacios!
Para facilitar su uso y basado en el guión original proporcionado por el stackoverflow.com Autor de la pregunta, he decidido convertir la secuencia de comandos de John en una función de PowerShell.
Aquí está la función de PowerShell Remove-InvalidFileNameChars.
|_+_|Cómo usar el operador de reemplazo de PowerShell con múltiples ejemplos
En la primera sección de esta guía, cubrí varios ejemplos del método de reemplazo de PowerShell. En esta sección, me centraré en el operador de reemplazo de PowerShell.
La sección comienza analizando la sintaxis del operador de reemplazo de PowerShell.
Sintaxis de PowerShell-Replace-Operators
Die Syntax des PowerShell-Replace-Operators lautet...
|_+_| |_+_|Una clara diferencia entre un método de PowerShell y un operador es la forma en que se utilizan. En un método, coloque un punto (.) junto al objeto, seguido del nombre del método y paréntesis ().
Por el contrario, para un operador, agregue un espacio después del objeto de PowerShell, seguido de - y el nombre del operador.
Entonces, en los siguientes ejemplos, en lugar de usar .Sustituto() , Usaré -Sustituto !
Cómo usar el método de sustitución de PowerShell para operar en un carácter en una cadena
Para reemplazar el carácter i con I en la cadena Victor, uso el siguiente comando...
|_+_|El resultado en PowerShell...
A diferencia del método de reemplazo de PowerShell, que distingue entre mayúsculas y minúsculas, el operador de reemplazo de PowerShell no lo hace. Entonces, el siguiente comando producirá el mismo resultado que el comando anterior...
|_+_|Esta vez usé una I mayúscula en el lado del valor Sustituto Operador. Tenga en cuenta que la cadena no contiene una I mayúscula, Víctor.
Entonces, si está escribiendo un script de PowerShell que necesita reemplazar letras mayúsculas y minúsculas, use el operador Reemplazar en lugar del método Reemplazar.
Cómo usar el método de reemplazo de PowerShell para reemplazar varias cadenas en un archivo de texto
En la sección Método de reemplazo, di un ejemplo en el que reemplacé los nombres de los servidores en este archivo de texto.
Quiero reemplazar el nombre del servidor ITGServer1 con ITGServer4. Además, quiero reemplazar ITGServer2 con ITGServer5 e ITGServer3 con ITGServer6.
Aquí está la versión del operador de reemplazo de la secuencia de comandos utilizada en el ejemplo del método de reemplazo...
cómo ver juegos de la nfl en kodi|_+_| Como en el ejemplo del método de reemplazo, la parte del operador de reemplazo del último script está concatenada.
Usar el operador de reemplazo de PowerShell para reemplazar cadenas y caracteres que distinguen entre mayúsculas y minúsculas
En varios puntos de esta guía, he indicado que el método de reemplazo de PowerShell distingue entre mayúsculas y minúsculas. Sin embargo, el operador de reemplazo de PowerShell no lo es.
En esta sección quiero ilustrar esto con un ejemplo.
Por ejemplo, este comando NO reemplaza R porque el método de reemplazo distingue entre mayúsculas y minúsculas.
|_+_|
Sin embargo, este comando reemplaza a R porque el operador de reemplazo NO distingue entre mayúsculas y minúsculas de forma predeterminada
|_+_|
Uso del operador de reemplazo de PowerShell para reemplazar la barra invertida ()
En la primera sección de esta guía, utilicé este comando de PowerShell para reemplazar la barra invertida única () en esta cadena. 23420.1.2021 , con doble barra invertida, (\)…
|_+_|Como puede ver, acabo de usar la barra invertida única en el método de reemplazo sin ningún problema.
Sin embargo, cuando convierto el último comando a la versión del operador de reemplazo, aparece un error. Aquí está la versión de reemplazo del operador del comando:
|_+_|Cuando ejecuto el comando en PowerShell, aparece un error...
El motivo de este error es que se trata como un patrón de expresión regular en PowerShell. Para resolver este problema, necesito agregar una segunda barra invertida en .
Esto hace que la barra invertida simple aparezca como una \ doble. Sin embargo, la segunda barra invertida le dice a PowerShell que no lo trate como un patrón de expresión regular.
Entonces ahora el orden es...
|_+_|¡Ahora el comando funciona a las mil maravillas!
Eso es todo: ¡una guía de reemplazo de PowerShell completa y revisada! ¿Espero que lo haya encontrado util?
Si te resultó útil, por favor vota y a la pregunta ¿Fue útil esta publicación a continuación?
Alternativamente, puede hacer una pregunta, dejar un comentario o proporcionar más comentarios utilizando el formulario 'Dejar una respuesta' en la parte inferior de esta página.
Finalmente, puede encontrar más zonas de PowerShell Tech S en nuestra página de procedimientos de Windows PowerShell. También puede encontrar muy útil nuestra página Trabajar desde casa.
Referencias y lecturas adicionales
- Acerca de los métodos
- Acerca del operador
- about_Quoting_Rules
- Procedimiento: Definir tipos de datos de PowerShell
- clase de ruta
- Cómo extraer una subcadena de powershell de una cadena
- Powershell, si se explica lo contrario: sintaxis y ejemplos


