如何用 PowerShell 分割文本文件?

如何用 PowerShell 分割文本文件?,第1张

解决办法:

ps | select * >pslist.txt

$pslist=gc pslist.txt

#按空格分隔文件

$pslist|%{$i=1}{

if($_){$_ >>"ps$i`.txt"}else{$i++}

}

#按内容和id修改文件名(因为有重名的所以加了id)

dir |?{$_.name -match 'ps\d+\.txt'}|%{

$newname=((gc $_)[1].split(":")[1]).Trim()

$id=((gc $_)[14].split(":")[1]).Trim()

Rename-Item $_ ($newname + $id+ ".txt")

}

产品特性:

您可轻易发现 Windows Powershell 的功能。例如,若要查找用于查看和更改Windows 服务的cmdlet 列表,执行:开始->运行->cmd,在命令行下输入 PowerShell 进入 windows PowerShell,再输入如下命令:

get-command *-service

在发现可完成任务的 cmdlet 之后,可以使用 Get-Help cmdlet 了解有关该 cmdlet 的详细信息。例如,若要显示有关 Get-Service cmdlet 的帮助,请键入:

get-help get-service

若要充分理解该 cmdlet 的输出,则可通过管道将其输出传递给 Get-Member cmdlet。例如,以下命令将通过 Get-Service cmdlet 显示有关该对象输出的成员的信息。

get-service | get-member

一致性

管理系统可能是一项复杂的任务,而具有统一接口的工具将有助于控制其固有的复杂性。然而,无论是命令行工具还是可编写脚本的 COM 对象,在一致性方面都乏善可陈。

Windows PowerShell 的一致性是其主要优点中的一项。例如,如果您学会了如何使用 Sort-Object cmdlet,则可利用这一知识对任何 cmdlet 的输出进行排序。而无需了解每个 cmdlet 的不同的排序例程。

此外,cmdlet 开发人员也不必为其 cmdlet 设计排序功能。Windows PowerShell 为他们提供了框架,而该框架可提供基本的功能,并强制他们在接口的许多方面保持一致。该框架虽然消除了通常会留给开发人员的某些选项,但作为回报,开发强健、易于使用的 cmdlet 的工作将更加简单。

交互式脚本环境

Windows PowerShell 将交互式环境和脚本环境组合在一起,从而允许您访问命令行工具和 COM 对象,同时还可利用 .NET Framework 类库 (FCL) 的强大功能。

此环境对 Windows命令提示符进行了改进,后者提供了带有多种命令行工具的交互式环境。此外,还对 Windows Script Host (WSH)脚本进行了改进,后者允许您使用多种命令行工具和 COM 自动对象,但未提供交互式环境。

通过将对所有这些功能的访问组合在一起,Windows PowerShell 扩展了交互用户和脚本编写者的能力,从而更易于进行系统管理。

面向对象

尽管您可以通过以文本方式键入命令与 Windows PowerShell 进行交互,但 Windows PowerShell 是基于对象的,而不是基于文本的。命令的输出即为对象。可以将输出对象发送给另一条命令以作为其输入。因此,Windows PowerShell 为曾使用过其他外壳程序的人员提供了熟悉的界面,同时引入了新的、功能强大的命令行范例。通过允许发送对象(而不是文本),它扩展了在命令之间发送数据的概念。

易于过渡到脚本

使用 Windows PowerShell,您可以很方便地从以交互方式键入命令过渡到创建和运行脚本。您可以在 Windows PowerShell命令提示符下键入命令以找到可执行任务的命令。随后,可将这些命令保存到脚本或历史记录中,然后将其复制到文件中以用作脚本。

识别你即将使用的Provider 通过识别PowerShell里安装的Provider,你就可以了解默认安装下PowerShell提供了那些能力。 Provider可以使用一种简单的访问方式,暴露位于不同储存位置的数据。就像是浏览不同磁盘上的目录结构一样简单。 Provider把不同的信息存放位置,表示成“驱动器”-目录这种结构,这样很容易被用户所理解。就像我们要访问一个位于D盘的WIN32目录下的SETUP.exe文件,我们要通过浏览器,单击D盘的图标,然后选择WIN32目录并双击一样,如果我们要访问位于“注册表”的数据,那么我们也只需要简单地通过Set-Location命令,来到到“REGISTRY”这个“驱动器”,然后用GET-CHILDITEM命令获取其子数据就行了。

注:实际上,PowerShell访问磁盘驱动器,也是通过Provider的,切换驱动器其实和切换其他数据容器是一样地 *** 作。 例如: Set-Location d:\ 这是切换驱动器 Set-Location HKLM:\ 这是切换到注册表的HKLM键 另外,Get-PSprovider命令,可以查看当前已经安装的所有PROVIDER。任何熟悉.NET编程的人,都可以编写Provider。当新的provider被安装后,就叫做snap-in。snap-in其实是一个动态连接库dll文件,可以被安装到powershell中。然而,当一个snap-in安装后,却没有办法卸载。 Get-PSProvider: Name Capabilities Drives ---- ------------ ------ Alias ShouldProcess {Alias} Environment ShouldProcess {Env} FileSystem Filter, ShouldProcess {C, D, F, A...} Function ShouldProcess {Function} Registry ShouldProcess {HKLM, HKCU} Variable ShouldProcess {Variable} Certificate ShouldProcess {cert} 这些就是我机器上的默认安装后的provider。

使用Set-Location和Get-ChildItem浏览数据 Set-Location用于改变当前目录,以及选择当前的provider,而Get-ChildItem用于获取当前目录或者指定目录下的子对象: 例子: set-location hkcu:\software get-childitem 例子2: GCI -path HKLM:\software

有两种连接WMI服务的方法:l 使用Get-WmiObject可以很容易地连接到WMI服务,并且获取WMI对象。 l 使用一个COM对象,“WbemScripting.SWbemLocator”,可以连接WMI的服务。SWbemLocator对象只有一个方法,就是ConnectServer()。该方法接受5个参数:用户名,密码,语言代码,验证方法(Kerberos, NTLM等),标志(超时值)。

下例中,我们使用New-Object命令,创建了一个“WbemScripting.SWbemLocator”的实例。然后用这个实例的ConnectServer方法连接了到了一个WMI的名字空间(root\cimv2),ConnectServer方法返回了一个WMIService对象,接着又用这个对象的subClassesOf()方法,返回了一系列WMI的CLASS: $strComputer = "." $wmiNS = "\root\cimv2" $strUsr ="" #Blank for current security. Domain\Username $strPWD = "" #Blank for current security. $strLocl = "MS_409" #US English. Can leave blank for current language $strAuth = "" #if specify domain in strUsr this must be blank $iFlag = "0" #only two values allowed: 0 and 128. $objLocator = New-Object -comobject "WbemScripting.SWbemLocator" $objWMIService = $objLocator.ConnectServer($strComputer, ` $wmiNS, $strUsr, $strPWD, $strLocl, $strAuth, $iFLag) $colItems = $objWMIService.subClassesOf() Write-Host "There are: " $colItems.count " classes in $wmiNS" foreach ($objItem In $colItems) { $objItem.path_.class }

实现的方法和详细的 *** 作步骤如下:

1、首先,打开文档,选择“文件”选项,如下图所示。

2、其次,单击“另存为”选项,如下图所示。

3、接着,点击“浏览”按钮,如下图所示。

4、然后,在“保存类型”中,选择“文本文件(制表符分隔)(*.txt)”选项,然后保存,如下图所示。

5、最后,就获得了想要的结果了,如下图所示。这样,以上的问题就解决了。

1、单击【常用】工具栏中的【新建空白文档】按钮,创建一个空文档。

2、选择【视图】菜单中的【大纲】菜单项,并切换到大纲视图下。此时【大纲】工具栏自动激活,【大纲】工具栏及各按钮的具体含义。

3、输入文档的大纲,并用内置的标题样式对各级标题进行格式化。

4、选定要拆分为子文档的标题和文本。注意选定内容的第一个标题必须是每个子文档开头要使用的标题级别。例如,所选内容中的第一个标题样式是“

标题3”,那么在选定的内容中所有具有“标题3”样式的段落都将创建一个新的子文档。选定的方法是鼠标移到该标题前的空心十字符号,此时鼠标指针变成十字箭头,单击鼠标即可选定该标题包括的内容。

5、单击【大纲】工具栏中的【创建子文档】按钮,原文档将变为主控文档,并根据选定的内容创建子文档。可以看到,Word

把每个子文档放在一个虚线框中,并且在虚线框的左上角显示一个子文档图标,子文档之间用分节符隔开。

6、把文件保存下来即可。Word

在保存主文档的同时,会自动保存创建的子文档,并且以子文档的第一行文本作为文件名。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11492839.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存