隐藏电源外壳输出



我有以下脚本:

param([Parameter(Mandatory=$true)][string]$dest)

New-Item -force -path "$dest1" -itemtype directory
New-Item -force -path "$dest2" -itemtype directory
New-Item -force -path "$dest3" -itemtype directory
Copy-Item -path "C:Development1binDebug*" -destination "$dest1" -container -recurse -force
Copy-Item -path "C:Development2binDebug*" -destination "$dest2" -container -recurse -force
Copy-Item -path "C:Development3binDebug*" -destination "$dest3" -container -recurse -force

该脚本采用一个字符串,并将所有文件和文件夹从静态源路径复制到给定的根字符串,修改一些文件夹以使其结构清晰。

工作正常,但打印出"新项目"命令的结果,我想隐藏它。我已经查看了SE上的网络和其他问题,但没有找到我问题的明确答案。

如果有人想知道 - 我在开头使用"New-item",以规避 PS' -recurse 参数中的缺陷,如果目标文件夹不存在,则无法正确复制所有子文件夹。(即它们是强制性的)

选项 1:通过管道将其转换为 Out-Null

New-Item -Path c:tempfoo -ItemType Directory | Out-Null
Test-Path c:tempfoo
选项

2:分配给$null(比选项 1 更快)

$null = New-Item -Path c:tempfoo -ItemType Directory
Test-Path c:tempfoo
选项

3:强制转换为 [void](也比选项 1 更快)

[void](New-Item -Path c:tempfoo -ItemType Directory)
Test-Path c:tempfoo

另请参阅:在PowerShell中忽略输出的更好(更干净)的方法是什么?

最新更新