Powershell相当于简单的DOS命令行:"copy*.ps1*.ps1.bak/y"

MKA*_*NET 3 powershell batch-file

我还在学习Powershell; 而且,意识到它的设计非常简单.但是,我很尴尬地说我无法找到一个简单的方法来使用PowerShell cmdlet执行下面的dos复制命令(最简单的方法).似乎副本项目不太喜欢通配符.我试过的东西最终变得过于复杂; 并且,仍然没有做我真正想要它做的事情.

复制*.ps1*.ps1.bak/y

Kei*_*ill 5

内置的Copy-Item命令不会执行此操作,但使用一个小脚本获取所需的功能并不困难:

Get-ChildItem *.ps1 | Copy-Item -Dest {"${_}.bak"}
Run Code Online (Sandbox Code Playgroud)

Foreach-Object在这种情况下不需要使用,因为Destination参数也接受管道输入.对于接受管道输入的参数,我们可以使用scriptblock来计算参数的值.PowerShell映射$_到管道对象以在scriptblock中使用,就像我们在scriptblock中执行此操作一样Foreach-Object.