¿Cómo dividir un archivo de texto usando PowerShell?
Solución:
ps | select * gt;pslist.txt?
$pslist=gc pslist.txt
#Archivos separados por espacio
$pslist|{$i=1}{
if($_){$_ gt; "ps$i`.txt"}else{ $ i }
}
#Modificar el nombre del archivo según el contenido y la identificación (la identificación se agrega debido al cambio de nombre)
dir |?{$_. -match 'ps\d \.txt'}|{
$newname=((gc $_)[1].split(":")[1]).Trim() p >
$id=((gc $_)[14].split(":")[1]).Trim()
Cambiar el nombre del proyecto $_ ($newname $id " .txt ")
}
Características del producto:
Puedes descubrir fácilmente lo que Windows Powershell puede hacer. Por ejemplo, para buscar una lista de cmdlets para ver y cambiar los servicios de Windows: Inicio -gt; Ejecute -gt; cmd, escriba PowerShell en la línea de comando Vaya a Windows PowerShell e ingrese el siguiente comando:
get -command *-service
Después de encontrar un cmdlet que completa una tarea, puede usar el cmdlet Get-Help para obtener más información sobre el cmdlet. Por ejemplo, para mostrar ayuda para el cmdlet Get-Service, escriba:
get-help get-service
Para comprender completamente el resultado de un cmdlet, puede importar su resultado a Cmdlet Get-Member. Cmdlet de servicio para mostrar la información de miembros generada por este objeto.
get-service | get-member
Coherencia
Administrar un sistema puede ser una tarea compleja y las herramientas con una interfaz unificada ayudarán a controlar su complejidad inherente . Sin embargo, tanto las herramientas de línea de comandos como los objetos COM programables carecen de coherencia.
La coherencia de Windows PowerShell es uno de sus principales puntos fuertes. Por ejemplo, si aprende a utilizar el cmdlet Sort-Object, puede utilizar ese conocimiento para ordenar la salida de cualquier cmdlet. No es necesario conocer las diferentes rutinas de clasificación para cada cmdlet.
Además, los desarrolladores de cmdlets no necesitan diseñar funciones de clasificación para sus cmdlets; Windows PowerShell les proporciona un marco que proporciona funciones básicas y los obliga a ser coherentes en muchos aspectos de la interfaz. El marco elimina algunas opciones que normalmente se dejan a los desarrolladores, pero a cambio simplifica mucho el trabajo de desarrollar cmdlets potentes y fáciles de usar.
Entorno de secuencias de comandos interactivo
Windows PowerShell combina un entorno interactivo con un entorno de secuencias de comandos, lo que le permite acceder a herramientas de línea de comandos y objetos COM, al mismo tiempo que aprovecha las bibliotecas de clases de .NET Framework ( FCL).
Este entorno mejora el símbolo del sistema de Windows, que proporciona un entorno interactivo con una variedad de herramientas de línea de comandos.
También mejora las secuencias de comandos de Windows Script Host (WSH), que le permiten utilizar varias herramientas de línea de comandos y objetos de automatización COM, pero no proporciona un entorno interactivo.
Al combinar el acceso a todas estas funciones, Windows PowerShell amplía las capacidades de los usuarios interactivos y los scripters para facilitar la administración del sistema.
Orientado a objetos
Aunque puede interactuar con Windows PowerShell escribiendo comandos como texto, Windows PowerShell está basado en objetos, no en texto. La salida del comando es un objeto. Puede enviar el objeto de salida como entrada a otro comando. Como resultado, Windows PowerShell proporciona una interfaz familiar para los usuarios que han utilizado otros programas de shell, al tiempo que introduce un nuevo y potente paradigma de línea de comandos. Amplía el concepto de envío de datos entre comandos al permitir que se envíen objetos en lugar de texto.
Fácil transición a scripts
Con Windows PowerShell, puede pasar fácilmente de escribir comandos de forma interactiva a crear y ejecutar scripts. Puede escribir comandos en el símbolo del sistema de Windows PowerShell para buscar comandos que realicen tareas. Estos comandos luego se pueden guardar en un script o en un historial y copiarlos en un archivo para usarlos como script.
Identifique los proveedores que utilizará Al identificar los proveedores instalados en PowerShell, podrá conocer qué características proporciona PowerShell en una instalación predeterminada. Los proveedores pueden exponer datos ubicados en diferentes ubicaciones de almacenamiento utilizando métodos de acceso simples. Es tan sencillo como explorar la estructura de directorios en diferentes discos. El proveedor representa las diferentes ubicaciones donde se almacena la información como una estructura de directorio de "unidad", que es fácil de entender para los usuarios. Al igual que si queremos acceder al archivo SETUP.exe ubicado en el directorio WIN32 de la unidad D, debemos hacer clic en el icono de la unidad D en el navegador, luego seleccionar el directorio WIN32 y hacer doble clic, así si queremos acceder los datos ubicados en el "Registro". Simplemente use el comando simple Establecer->Ubicación e ingrese al directorio "Registro". Ubicación", vaya a la "unidad" "REGISTRO" y luego use el comando GET-CHILDITEM para obtener sus subdatos.
Nota: De hecho, PowerShell también puede acceder a la unidad de disco a través del proveedor Realizar las mismas operaciones que cambiar unidades y otros contenedores de datos. Por ejemplo, Set-Location d:\ Esto es cambiar la unidad Set-Location HKLM:\ Esto es cambiar a la clave HKLM en el registro. Además, el comando Get-PSprovider lo permite. Puede ver la instalación actual. Todos los proveedores. Cualquiera que esté familiarizado con la programación .NET puede escribir Proveedores. El complemento es en realidad un archivo dll de biblioteca de vínculos dinámicos que se puede instalar en PowerShell. ser desinstalado Get-PSProvider: Nombre Capacidades Unidades ---- ------------ ------ Alias ShouldProcess {Alias} Entorno ShouldProcess {Env} Filtro del sistema de archivos, ShouldProcess {. C, D, F, A...}.
Función DeberíaProceso {Función} Registro DeberíaProceso {HKLM, HKCU} Variable Debería Procesar {Variable} Certificado DeberíaProceso {cert} Estos son los puertos predeterminados instalados en mi computadora.
Buscar datos usando Set-Location y Get-ChildItem Set-Location se usa para cambiar el directorio actual y seleccionar el proveedor actual, mientras que Get-ChildItem se usa para obtener objetos secundarios en el directorio actual o en un directorio específico. directorio: Ejemplo: set-location hkcu:\software get-childitem Ejemplo 2: GCI -path HKLM:\software
Hay dos formas de conectarse al servicio WMI: l Usando Get-WmiObject, puede conéctese fácilmente al servicio WMI y obtenga el objeto WMI. l El objeto SWbemLocator tiene un solo método, ConnectServer(). El método acepta 5 parámetros: nombre de usuario, contraseña, código de idioma, método de autenticación (Kerberos, NTLM, etc.) y bandera (valor de tiempo de espera).
En el siguiente ejemplo, creamos una instancia "WbemScripting.SWbemLocator" usando el comando New-Object. SWbemLocator", luego conéctese al espacio de nombres WMI (root/cimv2) usando el método ConnectServer de esta instancia, que devuelve un objeto WMIService, y luego use el método subClassesOf () de este objeto para devolver una serie de CLASES WMI: $ strComputer = "." $wmiNS = "\root\cimv2" $strUsr = ""#En blanco indica la seguridad actual. Dominio\Nombre de usuario $strPWD = ""#En blanco para la seguridad actual.$strLocl = "MS_409"#Inglés de EE. UU. seguridad. Idioma $strAuth = "" #Debe estar vacío si el dominio se especifica en strUsr $iFlag = "0" #Solo se permiten dos valores: 0 y 128 $strPWD = ""# En blanco indica seguridad actual $strLocl = " MS_409 " #US.#objLocator = Nuevo-Objeto -comobject "WbemScripting.SWbemLocator" $objWMIService = $objLocator.ConnectServer($strComputer, ` $wmiNS, $strUsr, $strPWD, $strLocl, $strAuth, $iFLag) $colItems = $objWMIService.subClassesOf() Write-Host "Hay: " $colItems.count " Clases en $wmiNS" foreach ($objItem In $colItems) { $objItem.path_.classes }