Powershell 需要脚本将生成输出发布到临时服务器
我正在尝试编写一个PowerShell脚本,该脚本将从源文件夹复制文件子集并将其放入目标文件夹。我已经玩了半天的“复制项目”和“删除项目”,无法得到想要的或一致的结果 例如,当我多次运行以下cmdlet时,文件最终位于不同的位置:Powershell 需要脚本将生成输出发布到临时服务器,powershell,powershell-2.0,Powershell,Powershell 2.0,我正在尝试编写一个PowerShell脚本,该脚本将从源文件夹复制文件子集并将其放入目标文件夹。我已经玩了半天的“复制项目”和“删除项目”,无法得到想要的或一致的结果 例如,当我多次运行以下cmdlet时,文件最终位于不同的位置: copy-item -Path $sourcePath -Destination $destinationPath -Include *.dll -Container -Force -Recurse 我一直在尝试我能想到的所有选项和命令的组合,但找不到正确的解决方案
copy-item -Path $sourcePath -Destination $destinationPath -Include *.dll -Container -Force -Recurse
我一直在尝试我能想到的所有选项和命令的组合,但找不到正确的解决方案。因为我确信我没有做任何非典型的事情,我希望有人能减轻我的痛苦,并为我提供正确的语法来使用
源文件夹将包含大量具有各种扩展名的文件。例如,以下所有情况都是可能的:
- .dll
- .dll.config
- .exe
- .exe.config
- .LastCodeAnalysisIssucceed
- .pdb
- .Test.dll
- .vshost.exe
- .xml
- 等等
非常感谢您对我的帮助。只要文件位于一个目录中,以下内容就可以正常工作。它可能比需要的要详细一点,但它应该是一个很好的起点
$sourcePath = "c:\sourcePath"
$destPath = "c:\destPath"
$items = Get-ChildItem $sourcePath | Where-Object {($_.FullName -like "*.exe") -or ($_.FullName -like "*.exe.config") -or ($_.FullName -like "*.dll")}
$items | % {
Copy-Item $_.Fullname ($_.FullName.Replace($sourcePath,$destPath))
}
尝试:
你的问题在这里有答案吗?不,当我使用接受的答案时,我得到一个DirectoryNotFound错误。错误中显示的路径是“连接”的目标路径。(注意:路径不存在。我需要脚本来执行此操作。)@SonOfPirate您需要先创建缺少的文件夹,然后再复制到其中。在我的答案中尝试代码。在目标路径上发现DirectoryNotFound错误。正如我所说,如果目标文件夹不存在,我需要脚本来创建它们。很抱歉,耽搁了,我终于有机会回到这个话题上来了。它非常适合我的需要!谢谢!
$source = "C:\a\*"
$dest = "C:\b"
dir $source -include *.exe,*.dll,*.exe.config -exclude *.test.dll,*.vshost.exe -Recurse |
% {
$sp = $_.fullName.replace($sourcePath.replace('\*',''), $destPath)
if (!(Test-Path -path (split-path $sp)))
{
New-Item (split-path $sp) -Type Directory
}
copy-item $_.fullname $sp -force
}