隐藏PowerShell输出

64
我有以下脚本:
参数([Parameter(Mandatory=$true)][string]$dest)
New-Item -force -path "$dest\1\" -itemtype directory
New-Item -force -path "$dest\2\" -itemtype directory
New-Item -force -path "$dest\3\" -itemtype directory

Copy-Item -path "C:\Development\1\bin\Debug\*" -destination "$dest\1\" -container -recurse -force
Copy-Item -path "C:\Development\2\bin\Debug\*" -destination "$dest\2\" -container -recurse -force
Copy-Item -path "C:\Development\3\bin\Debug\*" -destination "$dest\3\" -container -recurse -force

该脚本接收一个字符串,并将所有文件和文件夹从静态源路径复制到给定的根字符串,为了结构清晰而修改一些文件夹。它可以正常工作,但会打印出“New-Item”命令的结果,我希望隐藏它。我查看了网络和SE上的其他问题,但没有找到解决我的问题的明确答案。如果有人想知道 - 我在开头使用“New-item”是为了规避PS中的一个缺陷,即-recurse参数不能正确地复制所有子文件夹,如果目标文件夹不存在。(也就是说,它们是必需的)

你重复了三次相同的事情。我认为你的示例代码可以使用for循环来实现。 - Raúl Salinas-Monteagudo
1个回答

110

选项1:将其传输到 Out-Null

New-Item -Path c:\temp\foo -ItemType Directory | Out-Null
Test-Path c:\temp\foo

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

$null = New-Item -Path c:\temp\foo -ItemType Directory
Test-Path c:\temp\foo

选项3:将其转换为[void](比选项1更快)

[void](New-Item -Path c:\temp\foo -ItemType Directory)
Test-Path c:\temp\foo

另请参阅:PowerShell中更好(更清洁)的忽略输出方式是什么?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接