Está en la página 1de 37

Administración de Sistemas Informáticos en Red

Implantación de
Sistemas Operativos

UD2. Powershell y CMD


Parte 2
UD2. Powershell y CMD
• INTRODUCCION
PowerShell es un entorno en línea de comandos y
scripting. Suple las deficiencias y limitaciones de CMD y BATCH.
Aprovecha la tecnología Framework para formar parte
de un entorno de trabajo común con otras aplicaciones
desarrolladas en entorno Microsoft. Resultado de esta
integración, el lenguaje de PowerShell utiliza sintaxis y palabras
clave de C#.
Presenta una estructura común para todos los comandos
PowerShell (cmdlets) simplificando su aprendizaje. A modo de
ejemplo, para la obtención de la ayuda, otros lenguajes en
línea de comandos utilizan /?, -?, /H, HELP… El método de
obtención de ayuda dependía del comando, no del entorno.
En PowerShell es el entorno el que establece en método.
El conjunto de comandos es ampliable. Es posible
programar nuevos cmdlets.
UD2. Powershell y CMD
• ORIENTACION A OBJETOS
El sistema operativo Windows 10 lo constituyen un
conjunto de objetos que, mediante los servicios, interactúan
entre ellos y con el usuario.
Los objetos están compuestos por tres elementos:
- Atributos
- Métodos
- Desencadenadores
Pongamos por ejemplo un objeto "tarjeta de red". En este
objeto, los atributos son la mac, la ip, la puerta de enlace…
Los métodos son las acciones que realiza el objeto:
interpretar una trama, definir una trama para enviarla…
Los desencadenadores son las acciones externas que
estimulan el objeto: petición de la orden ping para que se envíe
una trama de verificación, peticiones de la orden net use para
que se intente comunicar con un equipo…
UD2. Powershell y CMD
• LOS CMDLETS
Los cmdlets de PowerShell son comandos que trabajan
sobre los objetos de Windows.
Cuando utilizamos un comando para saber el nombre
UPN de un usuario del directorio activo, estamos accediendo al
objeto que representa al usuario y recuperando el valor del
parámetro UPN.
Esta metodología de trabajo permite una interacción
integrada entre diferentes comandos, ya que PowerShell
controla la salida de un comando para poder suministrárselo a
otro comando. Otros sistemas, como cmd, se basan en listados
de texto, en los que un comando devuelve un listado que
puede ser facilitado a otro comando para que lo interprete.
El maquetado de la información es más sencillo porque
la salida de un comando se puede redirigir a comandos de
maquetación. Estos comandos de maquetación son comunes
al sistema, no al comando que ha devuelto la información.
UD2. Powershell y CMD
• ESTRUCTURA DE LOS CMDLET
Los cmdlets utilizan una estructura verbo-sustantivo. El
nombre del comando está compuesto por un verbo que
establece la acción y un sustantivo que define el tipo de objeto
sobre el que se va a actuar, separados por un guion.
Esta estructura simplifica el aprendizaje. A modo de
ejemplo estudiemos el siguiente comando:
New-Alias
New es el verbo. Parece evidente que el comando
creará algo nuevo.
Alias es un sustantivo. El comando va a trabajar sobre los
alias. Entendemos fácilmente que alias se refiere a diferentes
formas de llamar a un comando.
Uniendo ambos conceptos, new-alias va a crear una
nueva forma de llamar a un comando
UD2. Powershell y CMD
• ESTRUCTURA DE LOS CMDLET
Cualquier cmdlet que vaya a crear algo, utilizará el
verbo new. Si se trata de interactuar con los alias del sistema,
utilizará el sustantivo alias. Ejemplos de comandos:

New-Item
New-Localuser
New-Variable
Get-Alias
Import-Alias

Puedes obtener un listado de los comandos con el verbo


New o con al sustantivo Alias con estas dos órdenes:
Get-Command –Verb New
Get-Command –Noun Alias
UD2. Powershell y CMD
• LA AYUDA EN POWERSHELL
La orden Get-Command nos devuelve la ayuda
resumida de los comandos.
• Get-Command. Muestra un listado de todos los
comandos disponibles
• Get-Command –Verb verbo. Muestra ayuda resumida
de todos los comandos que tiene por verbo el
especificado.
• Get-Command –Noun sustantivo. Muestra ayuda
resumida de todos los comandos que tiene por
sustantivo el especificado,
• Get-Command –Name cmdlet. Muestra la ayuda
resumida del cmdlet especificado. El parámetro –name
se puede omitir.
• Get-Command –Syntax cmdlet. Muestra la sintaxis del
comando con todos los parámetros admisibles.
UD2. Powershell y CMD
• LA AYUDA EN POWERSHELL
La ayuda detallada por defecto no está instalada. Para
instalarla debes ejecutar Update-Help desde una consola PS
lanzada como administrador.
La obtención de ayuda detallada se consigue con la
orden Get-Help o con el parámetro -?
• Get-help comando. Muestra la ayuda básica del
comando especificado.
• Comando -?. Igual que el anterior.
• Get-Help comando –Online. Te redirige a una página
de Microsoft con la ayuda detallada y ejemplos de
utilización.
• Get-Help comando –Examples. Muestra ejemplos de
utilizacion.
• Get-Help comando –Detailed. Muestra ayuda
detallada.
• Get-Help comando –Full. Muestra toda la ayuda.
UD2. Powershell y CMD
• LOS ALIAS
Los alias son formas de llamar a un cmdlet con otro
nombre. Sirven para abreviar sentencias de uso habitual.
Podemos gestionar los alias con los comandos de
nombre alias.

Los verbos asociados son:


o Export. Para llevar a un fichero.
o Import. Para cargar desde un fichero.
o New. Para crear un nuevo alias.
o Get. Para obtener información de un alias.
o Set. Para modificarlo.
UD2. Powershell y CMD
• LOS ALIAS
Para facilitar el aprendizaje de PowerShell, el sistema
interpreta comandos de otras plataformas como si fueran
propios. Pongamos un par de ejemplos:
Comando PS Comando CMD Comando Linux
Move-Item Move mv
Clear-Host Cls clear

Se hace una traducción del comando a un cmdlet. Esto


implica que solo funcionan los parámetros y modificadores
compatibles con PowerShell.
Si ejecutas ‘dir’, funciona correctamente. Observa que el
listado devuelto no es que te daría un dir en cmd, si no que es lo
que devolvería un ‘Get-Cliditem‘ en PowerShell.
Si ejecutas ‘dir /s’, da error porque no interpreta /s como
un modificador sino que lo hace como una ruta absoluta.
Muchos cmdlets aceptan la abreviatura de la/s inicial/es
del verbo y la del nombre. La abreviatura de ‘New-Item’ es ‘ni’.
UD2. Powershell y CMD
• AUTOCOMPLETADO
Recordarás que en CMD, al escribir el inicio de una ruta y
pulsar el tabulador, la ruta es autocompleta con rutas válidas
que comiencen por los caracteres que has escrito. Si hay varios
que cumplen con el patrón, pulsado sucesivamente el
tabulador se van mostrando sucesivamente.
En PS, este autocompletado se extiende a los cmdlets.
Puedes autocompletar el cmdlet y también los parámetros.
UD2. Powershell y CMD
• CANALIZACIÓN DE OBJETOS
Las canalizaciones en cmd envían el listado de texto del
resultado de un comando a otro comando. En PS, se envían
objetos. La ventaja es que recibimos un objeto completo del
que podemos extraer, modificar, aplicar información.
Los objetos se transfieren individualmente, lo que permite
tratarlos secuencialmente.
Al igual que el CMD, utilizamos la pipeline (tubería) |
para canalizar.
Estudiemos este ejemplo:
Get-Childitem –Recurse | Out-host –Pagin
Resulta evidente que va a hacer el cmdlet: obtener (get)
los elementos hijos (childitem). ¿De quién? De la ruta actual (no
hemos especificado otra). Recurse lo que hará es buscar
también en los subdirectorios. Todo este conjunto de objetos se
envía a Out-host (Sacar en anfitrión) que va a mostrar en
nuestro equipo la información. ¿Cómo? Paginada (Pagin)
UD2. Powershell y CMD
• CANALIZACIÓN DE OBJETOS
En el ejemplo debemos tener en cuenta que get-
childitem envía el listado de los objetos que cuelgan del
directorio actual y es out-host el que los muestra uno a uno
controlando la paginación.
Get-Childitem –Recurse | Format-List –Property FullName
En este caso, el conjunto de objetos es el mismo, pero el
cmdlet va a formatear la información en modo lista y solo va a
mostrar la propiedad fullname de cada objeto.
Si en get-childitem añadimos el parámetro –attributes
directory, get-childitem solo localiza los directorios, y este es el
conjunto de objetos que pasa a format-list.
UD2. Powershell y CMD
• FORMATO DE LA INFORMACION
Como hemos visto, estamos manejando objetos con
muchos atributos. Esto implica que la cantidad de información
es grande. Para facilitar la lectura o interpretación de la
información, PS nos provee de una serie de comandos de
formato:
o Format-Wide. Se muestra el valor de la propiedad
predeterminada de cada objeto en un panel de
dos columnas.
o Format-Wide –Property propiedad. Muestra la
propiedad seleccionada.
o Format-Wide –Colum N. Muestra un panel con
tantas columnas como indiquemos en el número N.
Si el texto no cabe, se truca indicándolo con puntos
suspensivos.
o Format-Wide –Autosize. Muestra el panel ajustando
la cantidad de columnas a la tamaño del texto a
mostrar.
UD2. Powershell y CMD
• FORMATO DE LA INFORMACION
o Format-List. Se muestra una lista con las
propiedades del objeto agrupadas por objeto.
o Format-List –Property prop1,prop2, … ,propN.
Muestra solo las propiedades indicadas en el
listado.
o Format-List –Property patrón. Se mostrarán las
propiedades que cumplan con el patrón definido
con caracteres comodín ? y *.
o Format-List –Groupby propiedad. Agrupa todos los
objetos que tienen el mismo valor en la propiedad
indicada.
o Format-Table. Se muestra una tabla en la que cada
registro es un objeto y cada campo es una
propiedad. Se pueden seleccionar las propiedades
a mostrar con –Property. Se puede ajustar el ancho
con –Autosize. –Groupby también es aplicable.
UD2. Powershell y CMD
• FORMATO DE LA INFORMACION
Los cmdlets tienen un destino predeterminado al que
enviar el resultado de su ejecución. En la mayoría de los casos
es la pantalla. Podemos controlar el destino con los cmdlets de
verbo Out.
o Out-Default. Lleva a la salida por defecto del
cmdlet.
o Out-File fichero. Lleva al fichero especificado
o Out-File fichero –Encoding ASCII. Codifica el texto
según ASCII. Por defeco lo hace en Unicode.
o Out-Host. Lleva a la pantalla.
o Out-Host –Paging. Muestra por pantalla paginando.
o Out-Null. Lleva a dispositivo nulo
o Out-Printer. Lleva a la impresora.
o Out-String. Muestra como un listado de texto plano
UD2. Powershell y CMD
• EL SISTEMA DE ARCHIVOS
Una de las funciones del sistema operativo es gestionar el
sistema de archivos. Esta abstracción del hardware idealiza el
disco duro como un contenedor de carpetas y archivos en
lugar de mostrarlo como es: un conjunto numerado de celdas
memoria.
Por una parte se encarga de decidir donde guarda
físicamente cada dato para luego poder recuperarlo. Esta
información no es accesible directamente por el usuario porque
no es relevante él.
Por otra parte ofrece una interfaz basada en una
estructura arborescente de carpetas y ficheros.
El sistema operativo Windows permite la generación de
hasta 24 árboles que identifica con una letra del abecedario. En
cada una de ellas se puede montar un sistema de archivos.
Otra opción para montar un sistema de archivos es
incluirlo como una subcarpeta de un árbol existente.
UD2. Powershell y CMD
• EL SISTEMA DE ARCHIVOS
Al igual que en CMD, tenemos unidad actual y ubicación
actual.
La unidad actual solo puede ser una de todas las
disponibles en el sistema. En cada unidad hay una ubicación
actual. La orden para conocer la ubicación actual es Get-
Location:
o Get-Location. Devuelve la ruta actual completa
incluida la unidad,
o Get-Location | fw –Property Drive. Devuelve la letra
de la unidad actual
Es interesante observar que el comando CD de CMD
sirve para cambiar de directorio y mostrar la ruta actual, sin
embargo, en PS, sí cambia la ruta actual, pero no muestra la
ubicación actual
UD2. Powershell y CMD
• EL SISTEMA DE ARCHIVOS
Para cambiar la ubicación actual se utiliza Set-Location:
o Set-Location ruta. Cambia la ubicación a la ruta
especificada. La ruta puede ser absoluta o relativa.
o Set-Location C:\DATOS. Cambia la ubicación actual a
C:\DATOS. Cambia la ruta y la unidad actual.
o Set-Location D:. Cambia la unidad actual a D: y se
coloca en la ubicación actual de esa unidad.
o F:. Cambia a la ubicación actual de la unidad F:
o CD CONTABILIDAD. Cambia la ubicación actual a un
directorio que cuelga del directorio actual y que
denomina CONTABILIDAD (ruta relativa).
o Set-Location ..\CONTABILIDAD. Cambia a un
directorio llamado CONTABILIDAD que cuelga de
nuestro directorio padre (ruta relativa)
o CD \DATOS. Cambia la ubicación al directorio DATOS
que cuelga de mi directorio raiz. (ruta absoluta).
UD2. Powershell y CMD
• EL SISTEMA DE ARCHIVOS
Para cambiar obtener información sobre un objeto del
sistema de archivos aplicamos el cmdlet Get-Item:
o Get-Item . . Muestra información sobre el directorio
en el que me encuentro.
o Get-Item unidad: . Muestra información sobre el
directorio actual de la unidad especificada.
o Get-Item ruta . Muestra información sobre el
directorio indicado en la ruta.
o Get-Item * . Muestra información sobre todos los
items del directorio actual.
o Get-Item patrón. Muestra información sobre todos
los items del directorio actual que cumplan con el
patrón.
La ruta, unidad y patrón se pueden combinar.
UD2. Powershell y CMD
• EL SISTEMA DE ARCHIVOS
Para obtener un listado del contenido de una ubicación
utilizamos Get-ChildItem. Lo podemos leer como ‘obtener
(verbo Get) los elementos hijos (sustantivo ChildItem).
o Get-ChildItem. Muestra el contenido de la
ubicación actual. Se puede utilizar ls y dir de Linux y
CMD respectivamente.
o Get-ChildItem –Path Ruta. Muestra los objetos
ubicados en la ruta especificada. Se pueden utilizar
caracteres comodín *, ?, [ ].
o Get-ChildItem –Recurse. Muestra el contenido de la
ubicación actual y el de cada uno de los
subdirectorios.
o Get-ChildItem –Depth N. Muestra el contenido de la
ubicación actual y los subdirectorios hasta el nivel
de profundidad indicado.
o Get-ChildItem –Directory. Muestra sólo los
directorios.
o Get-ChildItem –File. Muestra sólo los ficheros.
UD2. Powershell y CMD
• EL SISTEMA DE ARCHIVOS
o Get-ChildItem –Hidden. Muestra sólo los archivos
ocultos.
o Get-ChildItem –ReadOnly. Muestra solo los objetos
de sólo lectura
o Get-ChildItem –System. Muestra solo los objetos de
con el atributo de sistema.
o Get-ChildItem –Attributes atributo1,atributo2…
atributoN Muestra los objetos que posean el atributo
especificado. Algunos atributos:
• ReadOnly, Directory, Archive, System, Hidden, Compressed,
Encrypted, Temporary…
o Get-ChildItem –Name. Muestra solo el nombre de
los objetos.
o Get-ChildItem –Exclude patrón1,patrón2…patrónN.
Excluye del listado los objetos que cumplen con
alguno de los patrones.
UD2. Powershell y CMD
• EL SISTEMA DE ARCHIVOS
Para verificar si un objeto existe dentro de sistema de
archivos, disponemos del cmdlet Test-Path.
o Test-Path –Path Ruta. Devuelve cierto o falso según
el objeto especificado en la ruta exista o no. El
objeto puede ser un directorio o un fichero.
o Test-Path –Path Ruta –ItemType Leaf. Devuelve
cierto o falso si el objeto especificado existe y es un
fichero.
o Test-Path –Path Ruta –ItemType Directory. Devuelve
cierto o falso si el objeto especificado existe y es un
directorio.
UD2. Powershell y CMD
• EL SISTEMA DE ARCHIVOS
Hemos visto cómo ubicarnos en el árbol de directorios y
cómo obtener información sobre los objetos contenidos en los
directorios. Ahora vamos a ver como crear objetos.
o New-Item –Name nombre. Crea un objeto tipo
archivo.
o New-Item nombre –ItemType Directory. Crea un
directorio.
o New-Item –Path C:\DATOS –Name PRUEBA.TXT –
ItemType File. Crea un fichero en C:\DATOS con el
nombre PRUEBA.TXT.
o New-Item PRUEBA –Value "Hola mundo". Crea el
fichero PRUEBA en la ubicación actual. El fichero
contiene el texto ‘Hola mundo’.
UD2. Powershell y CMD
• EL SISTEMA DE ARCHIVOS
Para renombrar objetos utilizamos Rename-Item:
o Rename-Item –Path fichero1.txt fichero2.txt.
Renombra el fichero fichero1.txt ubicado en el
directorio actual a fichero2.txt. El fichero
renombrado se mantiene en la ubicación original.
Para mover objetos utilizamos Move-Item:
o Move-Item -Path C:\DATOS\Fichero1.txt –
Destination E:\COPIA. Mueve el fichero de c:\datos
a e:\copia. El directorio de destino debe existir. Si
no existe, se toma como nuevo nombre para el
fichero.
o Move-Item C:\DATOS\PRUEBA .\. Mueve el fichero
Prueba de c:\datos a la ubicación actual.
o Move-Item C:\PRUEBA. Igual que el anterior. Al no
especificar destino, lo mueve a la ubicación actual.
UD2. Powershell y CMD
• EL SISTEMA DE ARCHIVOS
La copia en PS es diferente a la que se hace en otros
entornos en línea de comandos. Cuando copiamos un
directorio solo se copia el objeto directorio, no su contenido.
Para copiar directorio y contenido debemos añadir el
parámetro –Recurse.
o Copy-Item –Path C:\DATOS E:\COPIA. Copia el
objeto Datos en el directorio raíz de E: con el
nombre de COPIA. Solo el objeto.
o Copy-Item –Path C:\DATOS E:\COPIA -Recurse.
Copia el objeto Datos y todo su contenido en el
directorio raíz de E:. Se genera el objeto COPIA que
contiene los mismos elementos que el objeto
DATOS.
UD2. Powershell y CMD
• EL SISTEMA DE ARCHIVOS
Para la eliminación, CMD utiliza del, erase y rd, según sea
fichero o directorio. En PS, los componentes del sistema de
archivos son objetos, por lo que existe un único comando para
borrar objetos, independientemente de si se trata de un fichero
o un directorio.
o Remove-Item objeto. Elimina el objeto indicado.
Puede ser un fichero o un directorio. Se pueden
utilizar caracteres comodín.
o Remove-item C:\DATOS\P*.* -Exclude Paco.txt.
Elimina todos los ficheros que empiecen por P del
directorio datos a excepción de Paco.txt.
Si lo que deseamos es eliminar un directorio que no esté
vacío, el cmdlet nos pedirá confirmación. Para evitar que se
pida confirmación se utilizará el parámetro –Recurse
o Remove-Item C:\DATOS -Recurse. Elimina el directorio
Datos y todo su contenido sin pedir confirmación
UD2. Powershell y CMD
• CMDLETS DE GESTION DE FECHAS
El comando para gestionar fechas es Get-Date.
Podemos especificar una fecha determinada o solicitar la del
sistema.
o Get-Date. Devuelve la fecha actual.
o (Get-Date).DayOfWeek. Devuelve el día de la
semana de la fecha actual.
o Get-Date –Day 7 –Moth 7 –Year 2000. Devuelve un
mensaje con los datos de fecha del 7 de Julio de
2020.
o Get-Date –Format T. Devuelve la hora actual en
formato hora:minutos:segundos.
o Get-Date -uFormat "%Y/%m/%d %Z " . Devuelve año,
mes, día y desplazamiento respecto a hora UTC

En la ayuda del comando puedes ver los parámetros


para format y uformat.
UD2. Powershell y CMD
• CMDLETS DE TRATAMIENTO DE OBJETOS
Como hemos comentado, estamos trabajando con
objetos y estos tienen métodos y propiedades. Para obtener un
listado de estas características de un objeto utilizamos el
comando Get-Member.
o Get-childItem | Get-Member. PowerShell detecta
el tipo de objeto que ha encontrado la orden Get-
ChildItem y muestra los métodos y propiedades
definidos para ese tipo de objeto. En este ejemplo,
Get-ChildItem puede haber localizado ficheros y /
o directorios, con diferentes características.
Mostrará un listado por cada tipo de objeto.
UD2. Powershell y CMD
• CMDLETS DE TRATAMIENTO DE OBJETOS
Existe una familia de comandos para la modificación
genérica de propiedades de objetos. Son los cmdlet de nombre
Itemproperty.

o Get-childItem | Get-ItemProperty –name extension,


isreadonly. Recupera todos los objetos que hay en
el directorio actual y de ellos muestra las
propiedades Extension e IsReadOnly.
o Get-Item *.txt | set-ItemProperty -name attributes -
Value "readonly,archive". Recupera todos los
objetos que tienen extensión txt y cambia sus
atributos a solo lectura y archivo.

Algunas propiedades son de solo lectura y no se pueden


modificar con este comando. Para saber cuales son
modificables podemos utilizar Get-Member.
UD2. Powershell y CMD
• CMDLETS DE TRATAMIENTO DE OBJETOS
En ocasiones, hacemos una selección de objetos y
deseamos depurar el listado eliminando los que cumplan cierta
característica. En este caso utilizaremos Where-Object.
o Get-ChildItem | Where-Object { $_.PSIsContainer –
eq $True}. Esta sentencia localiza archivos en la
ubicación actual. El listado (objetos tipo fichero y
objetos tipo directorio), se pasa a Where-Object
que aplica el criterio de que la propiedad
PSIsContainer esté activada. Eliminará los ficheros
del listado.
$_ es una forma relativa de hacer referencia al objeto
enésimo que se recibe por la canalización. Si Get-
ChildItem ha encontrado el fichero prueba.txt, en el
momento de procesar este objeto, en la canalización se
sustituye $_.PSIsContainer por prueba.txt.PSIsContainer.
La respuesta a la consulta será cierto o falso. Si el
resultado es cierto, el objeto se mantiene en el listado. En caso
contrario se elimina del conjunto .
UD2. Powershell y CMD
• CMDLETS DE TRATAMIENTO DE OBJETOS
Los comparadores que se pueden utilizar son:
o -eq. Comprueba si son iguales.
o -ne. Comprueba si son diferentes.
o -lt. Comprueba si es menor.
o -le. Comprueba si es menor o igual.
o -gt. Comprueba si es mayor.
o -ge. Comprueba si es mayor o igual.
o -like. Comprueba si cumple con un patrón.
"Hola.txt" –like "H??.txt".
o -notlike. Comprueba si no cumple con un patrón.
UD2. Powershell y CMD
• CMDLETS DE TRATAMIENTO DE OBJETOS
En el caso de que deseemos utilizar varios criterios, se
pueden concatenar condiciones lógicas con and, or y not.
o Get-ChildIten | Where-Object { ( $_.name –like
"p*.txt) –and ($_name –notlike "pa*,txt) }. Selecciona
los ficheros que empiezan por ‘p’, pero excluyendo
a los que empiezas por ‘pa’.
También podemos canalizar un Where-Object sobre otro
Where-Object haciendo un filtrado progresivo.
o Get-ChildIten | Where-Object {$_.name –like
"p*.txt)} | Where-Object {$_name –notlike "pa*,txt) }.
Da el mismo resultado que la sentencia anterior.
Los valores comparables son números, cadenas o
propiedades lógicas. Podemos utilizar Get-Member para
comprobar de que tipo es la propiedad por la que queremos
cribar.
UD2. Powershell y CMD
• CMDLETS DE TRATAMIENTO DE OBJETOS
Otra situación que se nos puede dar es que, tras una
canalización, deseemos ejecutar una o varias órdenes, incluso
partiendo de algún atributo del objeto que recibimos.
o Get-ChildIten | Foreach-Object { Write-Host "El
fichero " $_.name " fue modificado por última vez el
día " $_.LastWriteTime ; Write-Host -------------- }.
Selecciona los objetos del directorio actual y se los
pasa a Foreach-Object. Por cada objeto recibido
escribe una línea con en nombre y la fecha de
modificación con un formato personalizado.
Además añade una línea de guiones.
o $cnt=0 ; get-content .\POESIA.TXT | Foreach-Object
{ $cnt++ ; $fich=$_.PSchildname } ; Write-Host "El
fichero" $fich "tiene" $cnt "líneas". Inicializa un
contador, lee el fichero poesía.txt línea a línea. Por
cada línea, Foreach incrementa el contador. Tras
leer la última línea se muestra un mensaje
maquetado.
UD2. Powershell y CMD
• CMDLETS DE TRATAMIENTO DE OBJETOS
Para ordenar los objetos de una colección por una
propiedad determinada utilizaremos el cmdlet Sort-object.
o Get-ChildIten *.txt | Sort-Object -Property
LastAccessTime. Smuestra los objetos con extensión
txt ordenados por la fecha del último acceso.
Dentro de un listado es posible excluir ciertos objetos.
o Get-Content poesia.txt | Sort-Object | Select-
Object –Last 5. Ordena las líneas del fichero y
muestra las 5 últimas.
o Get-Content poesia.txt | Select-Object –unique.
Muestra las líneas del fichero poesia.txt excluyendo
repeticiones.
o Get-Content poesia.txt | Select-Object –skip4.
Muestra las líneas del fichero poesia.txt excluyendo
las 4 primeras líneas.
UD2. Powershell y CMD
• CMDLETS DE TRATAMIENTO DE TEXTO
Para obtener el contenido de un fichero utilizamos el
cmdlet Get-Content.
o Get-Content .\Poesía.txt. Muestra el contenido del
fichero Poesía.txt
o Get-Content .\Poesía.txt -TotalCount 5. Lee las 5
primera líneas del fichero Poesía.txt.
o Get-Content .\Poesía.txt -Tail 5. Lee las 5 últimas
líneas del fichero Poesía.txt.
o (Get-content .\Poesía.txt –TotalCount 5)[4]. Se
genera una variable temporal con 5 ubicaciones.
Get-Content recupera las 5 primeras líneas y las
guarda línea a línea en las 5 ubicaciones de la
variable temporal. [4] obtiene el quinto valor de la
variable temporal, que es la quinta línea. Observa
que las ubicaciones dentro de la variable temporal
se enumeran desde 0.
UD2. Powershell y CMD

Félix Fernández Belloso


Septiembre 2022

Centro Integrado María Ana Sanz

También podría gustarte