Está en la página 1de 6

Curso PowerShell 1 de 6

Captulo 1 - Descubra PowerShell


Navegacin por directorios y archivos:
Si un directorio tiene espacios, lo escribimos entre
comillas RUTA
Get-Children: Vemos el contenido de un directorio
(Alias: dir, gci, ls)
Get-Children RUTA nos muestra toda la informacin
del contenido
Para isuali!ar arc"ios ocultos a#adimos Force
p.e: $%s&ueda recursia: Get-Children RUTA
Recrse
p.e: 'iltro: Get-Children RUTA !nclde ".t#t
p.e: 'iltro: Get-Children $ %here-&'(ect
)*+.,enght gt -./0(
p.e: Get-Children $ %here-&'(ect
)*+.,ast%riteTi1e gt 23echa40
5et-,ocation: )ambiamos el directorio en curso (Alias:
sl, cd)
5et-,ocation RUTA* .. directorio padre, 6 rai!
Get-,ocation: +euele la ruta actual (Alias: gl, p7d)
Ne7-!te1: )rea un arc"io o directorio (Alias: 1d, ni)
Ne7-!te1 !te1Type 8le$directory ,Na1e n ,9ath
ruta :ale t-t
)on las redirecciones ; o ;; para rediri.ir un
resultado a un arc"io
Re1ove-!te1: /limina (Alias: rd, ri, r1dir, rd, del,
erase)
Re1ove-!te1 Ruta
Para eliminar un arc"io oculto o de sistema a#adimos
3orce
)on 7hati3 podemos er &ue a a "acer el comando
sin e0ecutarlo
)on con8r1 nos pide con1rmacin con cada
elemento a eliminar
p.e: /liminar con 1ltro: Re1ove-!te1 RUTA6".t#t
p.e: Get-Children RUTA6" -!nclde 8ltro Recrse
$ Re1ove-!te1
<ove-!te1: 2uee un arc"io o directorio (Alias:
1ove, 1i, 1v)
<ove-!te1 9ath RUTA+&R!G=N destination
RUTA+>=5T!N&
p.e: muee las fotos(: <ove-!te1 -9ath ".(pg
destino 2destino4
3a de e-istir el destino, con 3orce se crea
autom4ticamente
Rena1e-!te1: )ambia el nombre (Alias: ren, rni)
Rena1e-!te1 9ath RUTA Ne7na1e
5U/V6562$R/
Se puede omitir el par4metro Ne7na1e indicando
solo el nombre
Copy-!te1: )opia un arc"io o directorio (Alias: copy,
cp, cpi)
Copy-!te1 9ath &rigen destination >estino
Se puede omitir el par4metro destination
/stas tareas se pueden reali!ar sobre proeedores (tipos
de ob0etos)
7o podremos er con Get-959rovider (re.istro,
ariables, ariables de entorno, alias, certi1cados,
funciones 8 sistema de arc"ios)
For1ateo de la vista:
For1at-,ist: ? isuali!acin en forma de lista
Co1ando $ For1at-,ist 9roperty
prop9a9mostrar, (
)on 9roperty " se muestran todas las
propiedades
)on @Co1andoA.9ropiedad emos
solamente esa
)on "prop emos todas las propiedades
coincidentes
For1at-Ta'le: 3t isuali!acin en forma de
tabla
)on ,9roperty indicamos la lista de
propiedades a er
)on ,AtosiBe a0usta el tama#o de las
columnas, no se
er4 todo si no cabe, dandose prioridad por
la i!&uierda
)on CideTa'leCeader se ocultan las
cabeceras
)on GropDy propiedad se a.rupan por
esta propiedad
For1at-%ide: 37 isuali!acin en formato de
tabla anc"a
2uestra la propiedad por defecto (solo una)
-9roperty muestra la propiedad a isuali!ar
-AtosiBe, a0usta las columnas al contenido
-col1 nE fuer!a a isuali!ar en el n%mero
de columnas
For1at-Csto1: 3c isuali!acin
personali!ada
Nor1as a conocer:
Co1illas: Simples para mostrar literalmente,
dobles para sustituir ariables por sus alores*
Caracteres de escape:
Fn salto de l:nea
F3 salto de p4.ina
Fr retorno de carro
Fa $ip sonoro
Ft tabulacin "ori!ontal
Fv tabulacin ertical
FG nulo
F4 comilla simple
FH comilla doble
FF bac;tic; simple
Cere-5tring: cadena &ue comien!a por I4
se.uido de un te-to 8 una l:nea despu<s 2I*
Todo el contenido se cuenta como te-to puro*
Parecido al heredoc de 9C9
Co1entarios:
= co1entario, se puede introducir detr4s de
los cmdlet
>= co1entario 1ltilJnea K; /n PS ?
5stitcin de varia'les: Para er el alor
de una propiedad de un ob0eto siempre:
*@o'(eto.propiedadA
Consola de lJnea de co1andos
@o A: comandos 8a usados
'B: entana con "istrico* @ o A nae.ar C
aceptar
'D: muestra el "istrico paso por paso
'E: Recupera un comando del "istrico por
n%mero
C 8 F: 5os moemos por la l:nea actual
)trl G F o C: palabra por palabra por l:nea
actual
Hnicio: Vamos al principio de la l:nea actual
'in: Vamos al 1nal de la l:nea actual
)rtl G c: 'inali!a la e0ecucin de instruccin
)rtl G Pausa: 'inali!a la e0ecucin de la
consola
Co1andos 'Lsicos:
'orma de los cmlets: erboInombre (5o es )S, el
nombre en sin.ular)
Por e0emplo Get, 5et, Add, Re1ove 8 los nombres:
9ath, !te1(
Get-Celp C&<AN>&: Vemos info sobre el comando,
a#adiendo
>etailed $ 1ore emos toda la informacin
Accedemos con Get-Celp )2+7/T, Celp )2+7/T o
)2+7/T -M
Podemos de1nir el niel de detalle de la a8uda con:
/standar: /s la normal, por defecto
+etallada: A#adiendo detailed
)ompleta: A#adiendo 3ll
Get-Co11and: Vemos la lista de comandos
disponibles
p.e: Get-Co11and :er' N&<DR=: emos todos
los comandos
&ue comien!an con el erbo indicado*
)on Get-Co11and Non N&<DR=: todos los
cmdlet con
el nombre indicado o &ue se aplican a ciertos ob0etos*
Podemos buscar con comodines: Get-Co11and Get-"
Get-<e1'er: 7ista todas la propiedades 8 m<todos de
un ob0eto
6$J/T6 $ Get-<e1'er
A#adiendo Force eremos propiedades 8 m<todos
aan!ados
)on <e1'erType 1ethod emos todos los
m<todos
Curso PowerShell 2 de 6
Captulo 2 - Fundamentos
Navegacin por directorios y archivos:
Si un directorio tiene espacios, lo escribimos entre
comillas RUTA
Get-Children: Vemos el contenido de un directorio
(Alias: dir, gci, ls)
Get-Children RUTA nos muestra toda la informacin
del contenido
Para isuali!ar arc"ios ocultos a#adimos Force
p.e: $%s&ueda recursia: Get-Children RUTA
Recrse
p.e: 'iltro: Get-Children RUTA !nclde ".t#t
p.e: 'iltro: Get-Children $ %here-&'(ect
)*+.,enght gt -./0(
p.e: Get-Children $ %here-&'(ect
)*+.,ast%riteTi1e gt 23echa40
5et-,ocation: )ambiamos el directorio en curso (Alias:
sl, cd)
5et-,ocation RUTA* .. directorio padre, 6 rai!
Get-,ocation: +euele la ruta actual (Alias: gl, p7d)
Ne7-!te1: )rea un arc"io o directorio (Alias: 1d, ni)
Ne7-!te1 !te1Type 8le$directory ,Na1e n ,9ath
ruta :ale t-t
)on las redirecciones ; o ;; para rediri.ir un
resultado a un arc"io
Re1ove-!te1: /limina (Alias: rd, ri, r1dir, rd, del,
erase)
Re1ove-!te1 Ruta
Para eliminar un arc"io oculto o de sistema a#adimos
3orce
)on 7hati3 podemos er &ue a a "acer el comando
sin e0ecutarlo
)on con8r1 nos pide con1rmacin con cada
elemento a eliminar
p.e: /liminar con 1ltro: Re1ove-!te1 RUTA6".t#t
p.e: Get-Children RUTA6" -!nclde 8ltro Recrse
$ Re1ove-!te1
<ove-!te1: 2uee un arc"io o directorio (Alias:
1ove, 1i, 1v)
<ove-!te1 9ath RUTA+&R!G=N destination
RUTA+>=5T!N&
p.e: muee las fotos(: <ove-!te1 -9ath ".(pg
destino 2destino4
3a de e-istir el destino, con 3orce se crea
autom4ticamente
Rena1e-!te1: )ambia el nombre (Alias: ren, rni)
Rena1e-!te1 9ath RUTA Ne7na1e
5U/V6562$R/
Se puede omitir el par4metro Ne7na1e indicando
solo el nombre
Copy-!te1: )opia un arc"io o directorio (Alias: copy,
cp, cpi)
Copy-!te1 9ath &rigen destination >estino
Se puede omitir el par4metro destination
/stas tareas se pueden reali!ar sobre proeedores (tipos
de ob0etos)
7o podremos er con Get-959rovider (re.istro,
ariables, ariables de entorno, alias, certi1cados,
funciones 8 sistema de arc"ios)
:aria'les y constantes:
*no1're N alor, con Get-Type emos el tipo
Para usar nombres con caracteres especiales: *
)no1're0
OtipoP*no1're (Podemos conertir un n%mero a
car4cter:
KintL, Kc"arL, KdoubleL (notacin decimal nM*nM o nMenM),
K$ooleanL,
KdatetimeL, Kstrin.L, Ksin.leL, KNmiL, KadsiL, KNmiclassL
p.e: )onersin de un n%mero a car4cter AS)HH: OcharP
*no1're N nE
p.e: +ecimal a "e-adecimal: *he# N H)G:Q0H 3
deci1al
p.e: +ecimal a octalObin: *oct N
O5yste1.ConvertP::To5tring@dec,R$.A
:aria'les prede8nidas: P Solo en PS ?
**: Qltima palabra del %ltimo comando tecleado
*M: true si la %ltima operacin "a sido correcta, false
sino
*S: Primera palabra del %ltimo comando tecleado
*+: 6b0eto actual transmitido por una tuber:a $
*Args: Tabla de ar.umentos pasados a una funcin o
script
*Con8r19re3erence: )ontiene &ue cmdlet pedir4n
con1rmacin
*ConsoleFileNa1e: Ruta de acceso a la consola usada
por %ltima e!
*>e'g9re3erence: Valor asociado a isuali!acin de
errores
*=rror: Tabla con contiene el re.istro de errores de la
sesin
*=rrorAction9re3erence: Accin a tomar en caso de
error
*=rror:ie7: 'ormato de isuali!acin de errores
*=#ectionConte#t: Representa el conte-to de
e0ecucin de PS
*False: )onstante
*Foreach: 3ace referencia al enumerador de bucles
Foreach
*For1at=n1eration,i1it: nM de elementos incluidos
en una ista
*Co1e: Pat" del directorio de inicio del usuario
*Cost: Hnformacin del seridor
*!npt: /numera ob0etos transmitidos por una tuber:a
*,ast=#istCode: )di.o de salida de la %ltima
e0ecucin de un *e-e
*<a#i11AliasCont: nM m4-imo de alias posibles en
una sesin
*<a#i11>riveCont: nM m4-imo de lectores
posibles
*<a#i11=rrorCont: nM m4-imo de errores
re.istrados en "istrico
*<a#i11FnctionCont: nM m4-imo de funciones
posibles
*<a#i11CistoryCont: nM m4-imo de comandos en
el "istrico
*<a#i11:aria'leCont: nM m4-imo de ariables
posibles
*<y!nvocation: 6b0eto relatio a la info sobre comando
en curso
*Nested9ro1ptlevel: 5iel de prompt actual, R es
ori.en
*Nll: ariable acia
*&F5: Separador para conersin de tabla en cadena
*&tpt=ncoding: 2<todo de codi1cacin de
caracteres PS
*9!>: Hd de proceso de PS
*9ro8le: Pat" del per1l PS
&peradores:
Arit1Tticos: G, I, P, O, S
Co1paracin:
Ie&: i.ual
Ine: diferente
I.t: ma8or
I.e: ma8or o i.ual
Ilt: menor
Ile: menor o i.ual
Co1paracin genTricos: Usan " 8 M
/-presin liUe alor
)on cliUe: )S, con iliUe no )S
Co1paracin de e#presiones
reglares:
-1atch: $usca i.ualdad entre e-presiones
Ino1atch: $usca desi.ualdad entre
e-presiones
=#presin 1atch 2e#preOsPion4
&peradores de intervalo: alor**alor
&perador de sstitcin: i.ual a
strin.*Replace()
=#presin replace 2a sstitir4,
2sstitto4
&peradores de tipo: e#presin is
OtipoP
Iis: eri1ca si dos ob0etos son del mismo
tipo
Iisnot: eri1ca si no son del mismo tipo
&peradores lgicos: -and, -or, -not o V,
-#or
&peradores 'inarios: I'and, -'or,
-'not, -'#or
/l resultado deuelto se conierte en
decimalTT
p.e: $uscar bit menos si.ni1catio*
Usamos una 1Lscara so're el 'it: *var
'and W (U si es U, R si es R)
&peradores de asignacin:
Vi G o , o P o O o S se.uido de W nM W Vi W
Vi 6P nM
ViGG o ViX(Hncremento o decremento)
Alias: Son apodos &ue facilitan la escritura
Get-Alias: Vemos todos los alias
Ne7-Alias: )rea un alias
Ne7-Alias Na1e Alias5ueo :ale
)2+7/T
5et-Alias: )rea o modi1ca un alias
5et-Alias Na1e Alias :ale )2+7/T
=#port-Alias: /-porta alias a un arc"io de
te-to
=#port-Alias 9ath RUTA
!1port-Alias: Hmporta un arc"io de alias
Curso PowerShell 3 de 6
Ta'las:
!nicialiBacin: *t N valor, X o *t N nE..nE
/n cada alor se puede indicar el tipo
Acceso: *tOindiceP o *tOindiceW, indice.XP,
*tOnE..nEP
Concatenacin: *t Y *t
AZadir n ele1ento: *t YN elemento
<odi8car n ele1ento: *tOinP N alor o
*t.5et:ale@val, indiceA
=li1inar n ele1ento:
Seleccin :ndices: *t N *tOnE..nE Y inP: Salta los
:ndices indicados
'iltro: *t N *t $ 7here-o'(ect O*+ &9=RA>&R
valorP
Ta'las asociativas: )laeIValor (alor puede ser otra
Redirecciones y t'erias: Permite conectar
la salida de un comando a la entrada de otro*
Co1ando+salida $ Co1ando+entrada
Filtro %here-&'(ect: Usado en tuber:as
Co1ando $ %here-&'(ect ) *+.propiedad
&9 2valor40
=strctra condicional:
!3:
Hf( condicion )Y
K/lseHf( condicion)Y
KZ/lseY
ZL
57itch:
SNitc"( condicion )Y
Valor YZ
(
+efault YZ
Z

Fnciones:
>e8nicin:
Fnction Oa1'itoP No1're @ar.umentosA)
para1 @lista de parL1etrosA
0
,la1ada:
No1're O@ar.umentosAP OO Se pueden omitir los
par<ntesis
Se puede obiar la de1nicin de ar.umentos en la
de1nicin de la
funcin 8 usar la tabla *args dentro de ella*
,la1ada a na 3ncin con parL1etros:
No1're 9arL1etro valor
/n la funcin, al inicio indicamos el tipo, etc:
para1 @OtipoP *varia'le N alor por defecto, XA
Se puede llamar a una funcin usando una parte
del nombre de
un par4metro, por e0emplo No1're , valor
busca en la lista de
par4metros uno &ue comience por v* /itando
ambi.[edades
Se puede omitir el nombre directamente siempre
&ue inclu8amos
los alores en orden de su de1nicin*
>evolcin de resltados:
/l resultado de la %ltima operacin de la funcin es
el deuelto
Fnciones 8ltro: Trata los datos a medida &ue se
Creacin de o'(etos personaliBados:
Usamos estos ob0etos para facilitar la
isuali!acin de informacin, por e0emplo, en
una funcin:
'unction 5ombreY
(
= )onstruccin del ob0eto
Vres W 5eNI6b0ect PS6b0ect
=A#adir los miembros a nuestro ob0eto:
V res \ AddI2ember 5otePropert8 5ombre
alor
(
= +euele los resultados
V res
Z
[1'ito de las varia'les:
Por defecto en una funcin solo se accede en modo
soloIlectura a una ariable de1nida fuera*
+iferenciamos 4mbito padre e "i0o (funciones o script
dentro del mismo conte-to*
[1'ito glo'al: Se aplica al inicio de PS* Solo lectura
en funciones(
Para modi1car una funcin "a8 &ue indicar *glo'al:
Var N valor
[1'ito local: +entro de una funcin, script o blo&ue
[1'ito script: limitado a la e0ecucin de un script*
>ot5orcing:
7lamar a un script con un punto 8 un espacio
permite disponer del contenido incluso
despu<s de su e0ecucin*
Si por e0emplo tenemos un script con
funciones 8 lo e0ecutamos: .\3nciones.psW 8
lue.o &ueremos llamar a una de sus funciones
3ncionW, no e-istir4 8 dar4 error*
7lamando al scrit con . .\3nciones.psW
podemos usar m4s tarde sus funciones u
Dcles:
%hile:
%hile (>condicin])Y
=blo&ue de instrucciones
Z
>o-%hile:
>oY
=blo&ue de instrucciones
Z%hile(>condicin])
For:
For (ViWR^ condicion^
incrementoOdecremento)Y
=blo&ue de instrucciones
Z
Foreach y Foreach-&'(ect:
Foreach (Velemento in coleccion)Y
7a coleccin puede ser otro cmdlet
Z
'oreac" se puede aplicar a un tuber:a
Foreach-&'(ect permite se.mentacin
entre las tareas
a efectuar, antes del primer ob0eto:
par4metro 'egin,
tras cada ob0eto process 8 tras el %ltimo
ob0eto, -end:
Foreach-&'(ect se aplica sobre el
resultado de una
tuber:a:
Foreach-&'(ect
Curso PowerShell 4 de 6
Fnciones avanBadas: Podemos crear nuestros _propios cmdlet`*
function >nombre de la funcin] (>ar.umento])Y
OC1dletDinding@AP
param (>lista de par4metros])
= $lo&ue de instrucciones
Z
,istar 3nciones avanBadas creadas: 5o se listas en Get-Co11and
Get-Co11and Co11andtype 3nction
Tenemos una lista de atributos &ue inau8en en su comportamiento:
5pports5hold9rocess: Hndica si %hati3 est4 actio
>e3alt9ara1eter5et ]parL1etro;: Hndica los par4metros a usar si la funcin no sabe cual de
ellos utili!ar
Con8r1!1pact ]valor;: loN, medium, "i.", indica cuando se pide con1rmar la e0ecucin
5napin ]No1're del 5nap-in;: nombre del componente &ue se usa para &ue la funcin realice su
traba0o*
p.e:
'unction 5ombreIVerbo Y
K)mdlet$indin.(SupportsS"ouldProcessWVtrue,
)on1rmHmpactWbmediumb)L
Param (Kstrin.LVParametro)
(
Z
)on estas funciones aan!adas podemos controlar los par4metros .racias al uso de atributos 8
ar.umentos* Por e0emplo para especi1car &ue el alor es de tipo string 8 &ue procede de una tuber:a*
p.e:
function cetIResultY
K)mdlet$indin.()L
Param(Kparameter(Value'romPipelineWVtrue)LValor)
NriteI"ost bel resultado de la tuber:a es: Valorb
Z
/l atributo m4s utili!ado es para1eter, mediante sus ar.umentos asi.nados act%a sobre el
comportamiento de un par4metro, los ar.umentos de para1eter son:
<andatory: /l par4metro es obli.atorio si su alor es *tre* Sintaxis:
Param(Kparameter(2andator8WVtrue)LValor)
9osition: Hndica la posicin del par4metro en la llamada: Sintaxis: Param(Kparameter(PositionWR)L
Valor)
9ara1eter5etNa1e: Hndica el 0ue.o de par4metro al &ue un par4metro pertenece: Sintaxis:
Param(Kparameter(ParameterSet5ameWcifra)LValor)
:aleFro19ipeline: /l ar.umento acepta entradas por tuber:a si su alor es *tre. Sintaxis:
Param(Kparameter(Value'romPipelineWVtrue)LValor)
:aleFro19ipelineDy: Hndica si el par4metro acepta una ntrada de una propiedad de un ob0eto de
tuber:a* Si la funcin inclu8e un par4metro llamado valor 8 el ob0eto tiene una propiedad con este
nombre, el par4metro ad&uiere el contenido de la propiedad valor del ob0eto transmitido* Sintaxis:
Param(Kparameter(Value'romPipelineWVtrue)LValor)
:aleFro1Re1aining: /l par4metro acepta ar.umentos de la funcin: Sintaxis:
Param(Kparameter(Value'romRemainin.Ar.umentsWVtrue)LValor)
Celp<essage: Hndica una descripcin del contenido del par4metro: Sintaxis:
Param(Kparameter(3elp2essa.eWbdescripb )LValor)
3a8 otros atributos &ue actuan sobre el contenido del par4metro 8 no sobre su comportamiento:
Alias: Hndica el alias del par4metro: Sintaxis: Param(Kalias(b)5b)LValor)
Allo7Nll: Permite el alor nulo* Sintaxis: Param(KAlloN5ull()LValor)
Allo7=1pty5tring: Permite la cadena ac:a* Sintaxis: Param(KAlloN/mpt8Strin.()LValor)
Allo7=1ptyCollection: Permite una coleccin ac:a como par4metro* Sintaxis:
Param(KAlloN/mpt8)ollection()LValor)
:alidateCont: Hndica un n%mero m:nimo 8 m4-imo de ar.umentos a proporcionar al par4metro*
Sintaxis:
Param(KValidate)ount(U,d)LValor)
:alidate,ength: 7on.itu m:nima 8 m4-ima del alor pasado* Sintaxis: Param(KValidate7en.t"(U,e)L
Valor)
:alidate9attern: +e1ne el alor pasado se.%n e-presiones re.ulares* Sintaxis:
Param(KValidatePattern(bKAPLb)LVcadena)
:lidateRange: +e1ne un ran.o de alor* Sintaxis: Param(KValidateRan.e(R,?R)LValor)
Curso PowerShell 5 de 6
Captulo 3 Control del Shell
<odi8cacin del per8l 95:
UUf
Curso PowerShell 6 de 6
<Ttodos y propiedades personaliBadas:
For1ateo de la vista:
Gestin de archivos:
Fechas:
!nternacionaliBacin:
&'(etos 9Dase y 95&'(ect:
^o's en segndo plano:
5nap-!ns y 1dlos:

También podría gustarte