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: