Introducción a PowerShell: Comienza con Comandos Básicos y Scripts Simples
junio 2, 2024 | by tutorialestech.net
¿Qué es PowerShell?
PowerShell es una herramienta poderosa de línea de comandos y lenguaje de scripting desarrollada por Microsoft. Diseñada para ayudar a los administradores de sistemas y desarrolladores, PowerShell permite automatizar tareas administrativas y configurar sistemas de manera eficiente. En este tutorial, te enseñaremos cómo empezar con PowerShell, cubriendo los comandos básicos y la creación de scripts simples.
¿Por qué usar PowerShell?
PowerShell ofrece múltiples ventajas:
- Automatización: Facilita la automatización de tareas repetitivas.
- Integración: Se integra bien con otros productos de Microsoft.
- Versatilidad: Útil para la administración de sistemas, gestión de redes y desarrollo de software.
- Acceso a WMI y COM: Permite acceder y administrar componentes de Windows a bajo nivel.
Primeros Pasos con PowerShell
Cómo Abrir PowerShell
- Windows 10/11: Presiona
Win + X
y selecciona «Windows PowerShell».
Navegación Básica
- Listar archivos y Directorios: Usa el comando ls
ls
Con este comando, podemos listar todo el contenido de archivos que hay en un directorio, también mostrará los directorios que hay en esa carpeta.
- Cambiar de Directorio: cd
cd \ruta a la que quermos ir >> cd C:\Users\pc\Descargas
Con este comando nos estamos dirigiendo a la ruta de descargas del usuario pc usando una ruta absolta, es decir que se ha usado una ruta completa.
- Ver el directorio actual: pwd o Get-Location
pwd
Get-Location
Como podemos observar en ambos ejemplos, podemos saber en que rutas estamos con ambos comandos, con pwd o con Get-Location
Comandos Básicos de Power Shell
En este apartado vamos a ver los comandos básicos que podemos usar en Power Shell y sus usos.
- Ayuda de comandos: Usa ‘Get-Help’ seguido del comando para ver una ayuda de ese comando
Get-Help ls
>>>> Salida del comando
PS C:\Users\pc\Downloads> Get-Help ls
NAME
Get-ChildItem
SYNTAX
Get-ChildItem [[-Path] <string[]>] [[-Filter]
<string>] [-Include <string[]>] [-Exclude <string[]>]
[-Recurse] [-Depth <uint>] [-Force] [-Name]
[-Attributes {None | ReadOnly | Hidden | System |
Directory | Archive | Device | Normal | Temporary |
SparseFile | ReparsePoint | Compressed | Offline |
NotContentIndexed | Encrypted | IntegrityStream |
NoScrubData}] [-FollowSymlink] [-Directory] [-File]
[-Hidden] [-ReadOnly] [-System] [<CommonParameters>]
Get-ChildItem [[-Filter] <string>] -LiteralPath
<string[]> [-Include <string[]>] [-Exclude <string[]>]
[-Recurse] [-Depth <uint>] [-Force] [-Name]
[-Attributes {None | ReadOnly | Hidden | System |
Directory | Archive | Device | Normal | Temporary |
SparseFile | ReparsePoint | Compressed | Offline |
NotContentIndexed | Encrypted | IntegrityStream |
NoScrubData}] [-FollowSymlink] [-Directory] [-File]
[-Hidden] [-ReadOnly] [-System] [<CommonParameters>]
ALIASES
gci
ls
dir
REMARKS
Get-Help cannot find the Help files for this cmdlet on
this computer. It is displaying only partial help.
-- To download and install Help files for the
module that includes this cmdlet, use Update-Help.
-- To view the Help topic for this cmdlet online,
type: "Get-Help Get-ChildItem -Online" or
go to
https://go.microsoft.com/fwlink/?LinkID=2096492.
Como podemos observar nos muestra la ayuda del comando ls e incluso nos dice que alias podemos usar.
Manipulación de archvos.
- Copiar archivos: Para copiar un archivo a otra ruta usaremos el comando Copy-Item
Copy-Item C:\Users\pc\Desktop\prueba.txt C:\Users\pc\Documents\prueba.txt
Básicamente para el uso de este comando, primero escribimos la ruta del archivo de origen, y luego la ruta de donde queremos copiar el archivo. El nombre final del archivo puede ser el mismo o también lo podemos cambiar.
- Mover archivos: Para mover un archivo a otra ruta usamos el comando Move-Item
Move-Item C:\Users\pc\Desktop\prueba.txt C:\Users\pc\Documents\prueba.txt
Al igual que en copiar archivos, es la misma metodología.
- Eliminar archivos: Para eliminar un archivo usaremos el comando Remove-Item
Remove-Item C:\Users\pc\Desktop\prueba.txt
De esta forma estaremos eliminando el archivo que queremos.
- Eliminar un directorio de forma recursiva: Con este comando podremos eliminar directorios incluyendo los ficheros que tiene dentro y sus subdirectorios.
Remove-Item -Path C:\Users\pc\Documentos\Pruebas -Recurse -Confirm
Creación de Script Simple
Ahora vamos a ver un ejemplo de como crear un Script simple para listar un directorio y guardar el contenido del listado en un archivo txt
Pero antes de nada veamos que es un script de PowerShell
¿Qué es un Script en PowerShell?
Un script en PowerShell es un archivo de texto con extensión .ps1
que contiene una secuencia de comandos PowerShell. Los scripts permiten automatizar tareas y realizar operaciones complejas de forma eficiente.
Ahora pasemos a crear el script, primero deberemos crear un nuevo archivo con la extensión .ps1 por ejemplo yo lo haré en el escritorio.
Primero debemos ir al explorador de archivos y en la pestaña vista marcar la casilla ver extensiones de archivo.
Una vez activa, podemos crear el archivo .ps1, primero crearemos un archivo txt, documento de texto.
Una vez creado el documento de texto, procedemos a cambiar la extension .txt por .ps1
Al cambiar la extensión te preguntará si deseas continuar, haces click en sí.
Ahora hacemos click derecho en el archivo y hacemos clcik en renombrar archivo y lo cambiamos a script.ps1
Una vez cambiado el nombre, volvemos a hacer click derecho y elegimos editar en el bloc de notas.
Una vez dentro del bloc de notas añadimos el siguiente código:
# Definir la ruta del archivo
$rutaArchivo = "C:\Users\pc\Documents\prueba\listaarchivos.txt"
# Obtener el directorio de la ruta del archivo
$directorio = Split-Path -Path $rutaArchivo
# Crear el directorio si no existe
if (-not (Test-Path -Path $directorio)) {
New-Item -ItemType Directory -Path $directorio
}
# Listar archivos en el directorio actual
$archivos = Get-ChildItem
# Guardar la lista de archivos en un archivo de texto
$archivos | Out-File -FilePath $rutaArchivo
Explicación del Script
1. Definir la ruta del archivo
powershellCopiar código$rutaArchivo = "C:\Ruta\Del\Directorio\lista_de_archivos.txt"
- $rutaArchivo: Aquí estamos definiendo una variable llamada
$rutaArchivo
y asignándole el valor de la ruta completa donde queremos guardar el archivo de texto que contendrá la lista de archivos. - «C:\Ruta\Del\Directorio\lista_de_archivos.txt»: Es una cadena de texto que representa la ruta y el nombre del archivo de salida.
2. Obtener el directorio de la ruta del archivo
powershellCopiar código$directorio = Split-Path -Path $rutaArchivo
- $directorio: Es una variable que almacenará la ruta del directorio donde se guardará el archivo.
- Split-Path -Path $rutaArchivo: La función
Split-Path
se utiliza para separar la ruta del archivo, extrayendo solo el directorio. Aquí le pasamos$rutaArchivo
y obtenemos solo la parte de la ruta que representa el directorio.
3. Crear el directorio si no existe
powershellCopiar códigoif (-not (Test-Path -Path $directorio)) {
New-Item -ItemType Directory -Path $directorio
}
- if (-not (Test-Path -Path $directorio)): Esta línea verifica si el directorio especificado no existe.
Test-Path
es una función que comprueba si una ruta existe.-not
es un operador lógico que invierte el resultado, por lo que la condición es verdadera si la ruta no existe. - New-Item -ItemType Directory -Path $directorio: Si la condición es verdadera (el directorio no existe), entonces
New-Item
se utiliza para crear un nuevo directorio.-ItemType Directory
especifica que el nuevo ítem es un directorio, y-Path $directorio
es la ruta donde se creará el nuevo directorio.
4. Listar archivos en el directorio actual
powershellCopiar código$archivos = Get-ChildItem
- $archivos: Es una variable que almacenará la lista de archivos en el directorio actual.
- Get-ChildItem: Esta función obtiene los elementos (archivos y carpetas) del directorio actual. Si no se especifica ninguna ruta, se asume que es el directorio donde se está ejecutando el script.
5. Guardar la lista de archivos en un archivo de texto
powershellCopiar código$archivos | Out-File -FilePath $rutaArchivo
- $archivos: Esta variable contiene la lista de archivos obtenida anteriormente.
- |: El operador de canalización pasa la salida de una expresión (en este caso, la lista de archivos) como entrada a otra expresión.
- Out-File -FilePath $rutaArchivo:
Out-File
toma la entrada que recibe (la lista de archivos) y la escribe en un archivo.-FilePath $rutaArchivo
especifica la ruta del archivo donde se guardará la lista.
Una vez escrito todo el código guardamos el archivo y lo ejecutamos de la siguiente manera, abrimos la PoweShell y escribimos lo siguiente
De esta forma podemos ejecutar el script comenzando con .\y la ruta del archivo.
De esta forrma obtenemos esta salida en el archivo de texto generado por el script
Espero que les guste nuestro primer tutorial, estaremos atentos a cualquier sugerencia en la caja de comentarios, como tutoriales o peticiones etc. Pronto vendremos con mas como este.
RELATED POSTS
View all