Get-Content
将从文件读取的数据视为数组, 每行文件内容为一个数组元素
传统的Cmd管道是基于文本的, 但是Powershell是基于对象的.
为什么可以通过notpad打开记事本, 不能通过wordpad打开写字板?
因为
notepad.exe
位于C:Windows\system32
这个目录, 而这个目录已经默认被包含在Powershell的环境变量$env:Path
中.
而wordpad.exe
所在的%ProgramFiles%\Windows NT\Accessories
目录却没有包含,
将wordpad
所在的目录加入到环境变量中,$env:Path=$env:Path+"%ProgramFiles%\Windows NT\Accessories"
.
常用的对管道结果进一步处理的命令有:
命令 | 解释 |
---|---|
Compare-Object | 比较两组对象. |
ConvertTo-Html | 将 Microsoft .NET Framework 对象转换为可在 Web 浏览器中显示的 HTML. |
Export-Clixml | 创建对象的基于 XML 的表示形式并将其存储在文件中. |
Export-Csv | 将 Microsoft .NET Framework 对象转换为一系列以逗号分隔的、长度可变的 (CSV) 字符串, 并将这些字符串保存到一个 CSV 文件中. |
ForEach-Object | 针对每一组输入对象执行操作. |
Format-List | 将输出的格式设置为属性列表, 其中每个属性均各占一行显示. |
Format-Table | 将输出的格式设置为表. |
Format-Wide | 将对象的格式设置为只能显示每个对象的一个属性的宽表. |
Get-Unique | 从排序列表返回唯一项目. |
Group-Object | 指定的属性包含相同值的组对象. |
Import-Clixml | 导入 CLIXML 文件, 并在 Windows PowerShell 中创建相应的对象. |
Measure-Object | 计算对象的数字属性以及字符串对象(如文本文件)中的字符数、单词数和行数. |
more | 对结果分屏显示. |
Out-File | 将输出发送到文件. |
Out-Null | 删除输出, 不将其发送到控制台. |
Select-Object | 选择一个对象或一组对象的指定属性.它还可以从对象的数组中选择唯一对象, 也可以从对象数组的开头或末尾选择指定个数的对象. |
Sort-Object | 按属性值对象进行排序. |
Where-Object | 创建控制哪些对象沿着命令管道传递的筛选器. |
在ForEach-Object中, $_
代表当前对象, 当然也允许通过$_
,调用该对象支持的方法.
Get-Content
逐行读取文本的内容, 然后把文本的每一行传递给管道.因此, 在你想读取一个长文件的前10行, 应当使用Select-Object
:
Get-Content $env:windir\windowsupdate.log | Select-Object -first 10
使用Select-String
可以过滤出文本文件中的信息.下面的命令行会从windowsupdate.log
文件中过滤出包含"added update"短语的行
|
|
Windows 凭证管理 cmdkey.exe
建立, 显示, 并删除已储存的用户名称和密码
这个命令的语法为:
CMDKEY [{/add | /generic}:targetname {/smartcard | /user:username {/pass{:password}}} | /delete{:targetname | /ras} | /list{:targetname}]
范例:
列出可用的认证:
|
|
建立一般认证: 可以用 /generic 参数来取代 /add 参数, 以建立一般认证
删除现有认证:
|
|