【发布时间】:2025-12-31 09:35:09
【问题描述】:
我的意思是给ls 的输出着色。
我检查了Powershell: Properly coloring Get-Childitem output once and for all。
这两个选项似乎是:
- 使用
New-CommandWrapper,正如 OP 和 Jon Z 的回答所提倡的那样。 - 使用模块
PSColor。
我从 OP 获得了New-CommandWrapper 的代码(与provided by O'Reilly 相同),将其放在文件New-CommandWrapper.ps1 中,并将其点源到我的profile.ps1 中。
现在,当我打开一个新会话时,我得到了
cmdlet New-CommandWrapper.ps1 at command pipeline position 1
Supply values for the following parameters:
Name:
这样可以吗?如果是这样,我应该输入什么?或者我该如何解决? (我敢肯定这个问题很简单)。
注意:我无法让PSColor 工作,这可能值得再问一个问题。
正如a comment 中提到的,在导入模块后,(几乎?)任何 cmdlet 输出
Value cannot be null.
Parameter name: command
En línea: 39 Carácter: 9
+ $steppablePipeline.Begin($PSCmdlet)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
编辑:
随着托马斯建议的修改,问题发生了变化。
现在我得到相同的Value cannot be null. 错误。
我想得出结论,他的建议是正确的,我解决了我遇到的许多连锁问题之一......但我不能确定。
【问题讨论】:
-
在脚本的第一行添加
function New-CommandWrapper {,在最后一行添加} -
@MathiasR.Jessen - 此修改后问题消失了。但是我仍然无法使 dir 颜色起作用。
ls现在给出了相同的Value cannot be null.错误(由与 OP 的 cae 不同的命令产生,当然......我怎么知道这个?)。 -
@MathiasR.Jessen - 此外,为什么使用
New-CommandWrapper的说明没有详细说明这一点?还是我错过了? -
好吧,不用修改你直接使用脚本文件,比如
.\path\to\New-CommandWrapper.ps1 Command-Name -AddParameter @{ Param = {...} }
标签: powershell