我有以下脚本:
PARAM([参数(强制性= $真)] [字符串] $目标寄存器)
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参数如果目标文件夹不存在,则不能正确复制所有子文件夹。 (即他们是强制性的)
答案 0 :(得分:2)
选项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
另请参阅:What's the better (cleaner) way to ignore output in PowerShell?